* lisp/treesit.el (treesit--range-start):
(treesit--range-end):
(treesit--flatten-ranges): New helpers.
(treesit-query-range):
(treesit-query-range-by-language): Don't flatten the ranges
returned by each range-fn.
(treesit--update-ranges-non-local):
(treesit--update-ranges-local): Handle the case where the range
is a complicated ((START . END)...).
* test/src/treesit-tests.el (treesit-range-helper): New test.
* src/term.c (append_glyph, append_composite_glyph)
(append_glyphless_glyph): Account for the right-border glyph
when computing the end glyph of TEXT_AREA. (Bug#80900)
This code may be called from within the loop in process_special_events
which assumed kbd_fetch_ptr remains unchanged. This caused a buffer
underflow which resulted in the entire kbd buffer being replayed.
* src/xterm.c (x_delete_selection_requests): Simply clear deleted
events rather than rotating the kbd buffer.
* lisp/emacs-lisp/subr-x.el (work-buffer--release): Make sure the
buffer is not left read-only. Clarify potential limitations to
the cleanup performed, especially w.r.t indirect buffers.
Don't bother binding `deactivate-mark` since that variable is buffer-local
nowadays anyway.
`syntax-propertize` currently doesn't support propertizing only
parts of a buffer. Maybe we should improve it, maybe via
something like `font-lock-dont-widen` or the `syntax-ppss` support for
narrowing, but in the mean time, teach comint to avoid holes in
the propertization.
* lisp/comint.el (comint--dummy-fontify-syntax): New function.
(comint--fontify-input-fontify-region): Use it to silence the
new "Cannot syntax-propertize" message in `syntax.el`.
Also, refine args to reflect the fact that it's an advice.
`overriding-text-conversion-style' isn't defined on all platforms, in
which case this is a no-op; there's nothing that has to be suspended.
Re <id:86zf2uc2ve.fsf@gnu.org>.
* lisp/vc/vc-hg.el (vc-hg-after-dir-status): Rewrite to handle
renames where the "R" line comes arbitrarily later in the
output.
* test/lisp/vc/vc-hg-tests.el
(vc-hg-test--after-dir-status-expect): New function.
(vc-hg-after-dir-status): New test.
* 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.