* lisp/leim/quail/syriac.el: New file
* lisp/language/misc-lang.el: ("Syriac"): New language environment.
("Arabic"): Add comment explaining usage of `arabic-shape-gstring'
for Syriac as well as Arabic.
* etc/NEWS: Announce the new language environment and input methods.
* etc/HELLO: Add a Syriac greeting.
(Bug#80451)
* doc/misc/efaq.texi (Colors on a TTY): Mention the unofficial
setrgbb, setrgbf, and Tc terminal capabilities, and give an
example custom terminfo defintion using them. (Bug#70941)
This should be more readable to most people, since C is
more widely familiar than the terminfo language.
* src/term.c (init_tty): Do the conversion from a single integer
24-bit color value to three 8-bit RGB values up-front.
(Bug#70941)
* src/term.c (turn_on_face): Account for TF_rgb_separate.
(init_tty): Support setrgbf/setrrgbb and set TF_rgb_separate
accordingly.
* src/termchar.h: Update commentary.
(Bug#70941)
When the non-standard terminfo capability Tc is present, or the
environment variable COLORTERM is set to truecolor, use a
hard-coded escape sequence that addresses all colors directly by
their RGB values.
Previously we used escape sequences cribbed from terminfo's
setaf/setab for direct color, that expect that we will only try to
use colors 000000 to 000007 for the first eight indexed colors.
This isn't something we currently handle.
* doc/misc/efaq.texi (Colors on a TTY): Fix off-by-one error in list
of indexed colors for terminfo RGB terminals.
* src/term.c (init_tty): Don’t use any indexed colors with terminfo
Tc capability or COLORTERM=truecolor environment variable (bug#70941).
Now that Transient-0.13.0 has been merged, we don't need to
treat its macros specially any more because they come with the
appropriate `autoload-macro` property.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): Delete var.
(loaddefs-generate--make-autoload): Delete corresponding code.
* lisp/progmodes/eglot.el (eglot--server-buffer-name): New function.
(eglot--connect): Rename events and stderr buffers after serverInfo
arrives to include the server's self-reported name.
(eglot-show-workspace-configuration, eglot-describe-connection)
(eglot--define-hierarchy-command): Use eglot--server-buffer-name.
(eglot--propose-changes-as-diff): Add SERVER argument; use
eglot--server-buffer-name.
(eglot--apply-workspace-edit): Add SERVER argument; pass server to
eglot--propose-changes-as-diff.
(eglot-handle-request workspace/applyEdit, eglot-execute)
(eglot-rename): Pass server to eglot--apply-workspace-edit.
* lisp/leim/quail/latin-ltx.el: Add a regex to match Greek
subscripts. Currently there are only five in unicode: beta, gamma,
rho, phi, and chi. They can now be input with the TeX input method
as, e.g., _\beta . (Bug#80791)
When the user renames a buffer's file via set-visited-file-name,
notify the server with didClose (old URI) and didOpen (new URI).
The TextDocumentIdentifier cache still holds the old URI when
after-set-visited-file-name-hook fires, so didClose uses it
correctly; didOpen then clears and rebuilds it from the new name.
* lisp/progmodes/eglot.el (eglot--managed-mode): Hook and unhook
eglot--after-set-visited-file-name-hook.
(eglot--after-set-visited-file-name-hook): New function.
Use box-drawing characters for the tree guides in hierarchy
buffers when the display supports them.
* lisp/progmodes/eglot.el (eglot--hierarchy-2): Rework.
The general idea here is to make it easier to handle situations
where you might have a symbol designating a package name or a
'package-desc' object, but you really want the latter.
* lisp/emacs-lisp/package.el (package--get-deps): Remove
function superseded by 'package--dependencies'.
(package--builtin-alist, package--archive-contents): Add new
functions.
(package--removable-packages): Use 'package--dependencies'.
(package--dependencies): Check for circular dependencies.
(package-upgrade, package--upgradeable-packages)
(package--user-installed-p, package-reinstall, package-recompile)
(describe-package-1, package-desc-status, package--mapc)
(package-menu--find-upgrades): Use 'package-get-descriptor'.
(package-get-descriptor): Add optional arguments to allow for
different kinds of queries.
* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages)
(package-vc--generate-description-file)
(package-vc-install-dependencies, package-vc--read-package-desc)
(package-vc-install, package-vc-checkout): Use
'package-get-descriptor'.
Now that 'eglot-uri-to-path' tries to return
"project-root-familiar" paths, unresolving the absolute path
name, it's important to update 'eglot--find-buffer-visiting' to
consider the two alternative ways to refer to a file. IOW, this
was already a bug, but the latest changes to 'eglot-uri-to-path'
made it more evident.
* lisp/progmodes/eglot.el (eglot--find-buffer-visiting): Also
consider buffer-file-name.
* lisp/net/tramp-sh.el (tramp-get-remote-arg-max): New defun.
(tramp-open-connection-setup-interactive-shell): Use it.
* lisp/net/tramp.el (tramp-multi-hop-p-hook): New defvar.
(tramp-multi-hop-p): Use it.
(tramp-handle-make-process): Set TERM environment.
Now that emacsclient can receive long lines without problems,
don’t bother splitting long lines when sending to it.
* lisp/server.el (server-msg-size): Now obsolete.
(server-reply-print): Send qtext without trying to break it
into pieces (Bug#80807#49).
Commit 6942d508f0 made js-mode-regexp-syntax-bug-25529 fail,
because it changes the moment and place in which
`syntax-propertize` gets called, uncovering a bug where
`js-jsx--detect-after-change` narrows the buffer, then calls
`re-search-forward` which calls `syntax-propertize`, so we end
up doing `syntax-propertize` while narrowed which can fail in
all kinds of ways.
* lisp/progmodes/js.el (js-jsx--detect-and-enable): Change optional arg
to BEG and END.
(js-jsx--detect-after-change): Use them to avoid narrowing.
* lisp/emacs-lisp/syntax.el (syntax-propertize): Emit a message
when called narrowed and the narrowing starts later than the
nearest already propertized position.
* lisp/emacs-lisp/package.el (package-install-file): Assume it
is OK to set the visited file name, since we are not actually
touching anything on disk, and prevent the modified flag from
preventing us to kill the temporary buffer. The flag is set by
tar-mode.
* lisp/emacs-lisp/package.el (package--review-git-diff-command):
Add new constant to avoid duplicating the exact command as the
default value and in the type of the user option.
(package-review-diff-command): Use git-diff(1) if Git is
installed, and fall back to regular diff(1) otherwise. The
previous default value has been moved to the user option, as a
suggested alternative.
(package-review): Support the ability to use symbols, that get
replaced and expanded into the list of switches.
(Bug#80684)
Co-Authored-By: Daniel Mendler <mail@daniel-mendler.de>