661fa578d5 Adapt Tramp version in customize-package-emacs-version-alist
0045a56d55 ; * ChangeLog.5: Delete entry for minor change.
1136aed6dc ; Update ChangeLog and AUTHORS for Emacs 30.2
* test/lisp/emacs-lisp/ert-tests.el (ert-test-erts-pass)
(ert-test-erts-fail): Add tests to verify that the
`ert-test-erts-file' function can detect both passing a failing
test cases.
* test/lisp/emacs-lisp/ert-resources/erts-fail.erts:
* test/lisp/emacs-lisp/ert-resources/erts-pass.erts:
Add test data. (Bug#78552)
* src/lread.c (get-load-suffixes): Don't try loading modules with
suffixes from 'jka-compr-load-suffixes', since loading of
compressed shared libraries is not supported (so attempt to look
for them is just waste of cycles). (Bug#78416.)
When there are many directories on load-path, the part of load which
searches load-path can become very slow. By filtering load-path up
front to only contain directories which are likely to contain the
searched-for file, load becomes much faster.
This can be set in early-init.el for maximum effect.
* lisp/startup.el (load-path-filter--cache)
(load-path-filter-cache-directory-files): Add.
* src/lread.c (Fload): Call load-path-filter-function.
(syms_of_lread): Add load-path-filter-function.
* lisp/ses.el (ses-standard-printer-functions): add 'ses-left' &
'ses-left-span' to the list.
(ses--align): New helper function, takes most of the code
previously in 'ses-center'
(ses-center): Use 'ses--align'.
(ses--span): New helper function, takes most of the code
previously in 'ses-center-span.
(ses-center-span): Use 'ses--span'.'
(ses-left): New function.
(ses-left-span): New function.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data, compile--test-error-line)
(compile-test-functions): Check the types (error, warning or info) for
most patterns. Use names instead of numbers in the reference.
Some minor modes adds their own eldoc display function to
'eldoc-display-functions' hook buffer-locally. So when eldoc
uses 'eldoc-display-functions' to display docs, it should use
the buffer-local value of the hook.
But that's not always the case. In 'eldoc--invoke-strategy', the
code that runs 'eldoc-display-functions' hook is wrapped in a
callback function that eventually gets passed to each
documentation function in 'eldoc-documentation-functions'. So
now it's the documentation functions' responsibility to call the
eldoc callback in the original buffer.
All the eglot documentation functions indeed do that, using
'eglot--when-buffer-window' to switch to the original buffer
when calling the eldoc callback. But
'eglot-code-action-suggestion' is the exception, the callback is
called outside of the 'eglot--when-buffer-window' form.
This patch fixes that.
This bug was originally reported on eldoc-box [1]. The user
found that eldoc-box's display function are rarely called, even
though the minor mode is turned on. This patch fixes the issue.
[1] https://github.com/casouri/eldoc-box/issues/126#issuecomment-2896611278
* lisp/progmodes/eglot.el (eglot-code-action-suggestion): Move
the funcall form into the eglot--when-buffer-window form.
Problem reported by Oliver Reiter and Pip Cet (Emacs bug#78473).
It looks like GCC tree-sra is trouble in general with how Emacs
uses unions, so disable tree-sra until the GCC bug is fixed.
* configure.ac (C_SWITCH_MACHINE): Also work around GCC bug 117423.
(treesit-sexp-type-down-list, treesit-sexp-type-up-list):
New buffer-local variables.
(treesit-down-list): Use 'treesit-sexp-type-down-list'.
(treesit-up-list): Use 'treesit-sexp-type-up-list'.
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
Set 'treesit-sexp-type-down-list' and
'treesit-sexp-type-up-list' to 'list'.
(tab-line-move-tab-backward): New command.
(tab-line-mode-map): Bind 'C-x M-<left>' to
'tab-line-move-tab-backward' and 'C-x M-<right>' to
'tab-line-move-tab-forward'.
(tab-line-switch-repeat-map): Bind 'M-<left>' to
'tab-line-move-tab-backward' and 'M-<right>' to
'tab-line-move-tab-forward'.
Suggested by pinmacs <pinmacs@cas.cat>.
509cbe1c35 "Improve env var handling in read-file-name"
caused 'try-completion' and 'all-completion' operations with
'completion--file-name-table' to no longer update the case of
text which was already present in the input string. That is,
completions would be returned ignoring case, but the completions
would have letter-casing which matched the input string rather
than matching the actual file names.
This was caused by unnecessarily replacing text in the returned
file name completions with text from the input string ORIG,
which in turn was caused by the desire to preserve text from
ORIG even after 'substitute-in-file-name' changed it. Fix this
by detecting when ORIG was not substantially changed by
'substitute-in-file-name'; in that case, the returned file name
completions also don't need substantial changes.
* lisp/minibuffer.el (completion--file-name-table): Use text
from the completions, not the input string. (Bug#78323)
* test/lisp/minibuffer-tests.el (completion-table-test-quoting):
Test with 'completion-ignore-case' as well.
* lisp/net/eww.el (eww--parse-html-region): Don't decode when it's a no-op.
(eww-display-raw): Simplify.
(eww-mode): Prefer #' to quote function names.
(eww-switch-to-buffer): Use `completion-table-with-metadata` instead of
`completion-extra-properties`. Don't prompt the user when there's only
one choice.
(eww-buffer-list): Use `eww--buffer-p`.
* lisp/net/eww.el: Require `track-changes`.
(eww-display-document): Don't `inhibit-modification-hooks` any more.
Use `track-changes-register` *at the end* instead.
(eww-mode): Don't use `after-change-functions` any more.
(eww--track-changes): New function.
(eww--process-text-input): Rename from `eww-process-text-input`.
Try and be more careful: don't presume `point` is near
the modification. Check for a form both at BEG and at END.
Don't rely on `:start/:end` pointing to the right places.
Use `:length` instead and shrink the field back to its original length
when possible.
(eww-size-text-inputs): Set `:length` rather than `:start/:end`.
* doc/emacs/programs.texi (Matching): Restore to the documentation
of Electric Pair mode the description of the use of a prefix
argument, which was overwritten by merging changes from the
emacs-30 branch, and clarify the usage.
* lisp/treesit.el (treesit-ready-p): More accurate wording of
message when grammar library fails to load.
* src/treesit.c (treesit_load_language): Improve message when
reporting library ABI version mismatch. Suggested by Soham
Gumaste <sohamg2@gmail.com>.
When there is no `.editorconfig` variable, the
`file-name-directory` call can signal an error, but that can
happen only if `editorconfig-get-local-variables-functions`
added entries "out of thin air". So just skip running that hook
to avoid this corner case.
* lisp/editorconfig.el (editorconfig--get-dir-local-variables):
Don't run `editorconfig-get-local-variables-functions` when we found no
EditorConfig settings.
* src/haikufont.c (haikufont_close): Clear INFO->metrics,
glyphs, be_font after they are released and do not attempt to
access them if NULL. (bug#77478)
* lisp/net/eww.el (eww--buffer-p): New function.
(eww-switch-to-buffer): Use it. And set `completion-extra-properties`
buffer-locally rather than let-binding it.
* lisp/find-lisp.el (find-lisp-find-dired-insert-file): Call
'dired-insert-set-properties' to support 'dired-hide-details-mode'
in the resulting Dired display. (Bug#78455)
Buttonize the ellipsis and optionally display in the ellipsis
the total number of hidden lines.
* lisp/progmodes/hideshow.el (hs-display-lines-hidden): New
user option.
(hs-ellipsis): New face.
(hs-make-overlay): Tweak.
(hs--get-ellipsis): New function.
* doc/emacs/programs.texi (Hideshow): Update documentation.
* etc/NEWS: Announce changes.