Commit graph

183094 commits

Author SHA1 Message Date
Eli Zaretskii fb09079ced Merge from origin/emacs-31
f6e3b4232f ; Fix docs for browse-url-transform-alist.
71df1ea6d0 Fix Fns_block_system_sleep to respect activity_id lifetim...
769bd89281 Remove assertion in erc-speedbar--dframe-controlled
2dca4a8854 ; Fix recently-installed documentation changes
6f71867f27 ; Clarify issues with frames and windows in Elisp manual

# Conflicts:
#	etc/NEWS
2026-08-15 11:02:07 -04:00
Eli Zaretskii d3b3007f52 ; Merge from origin/emacs-31
The following commit was skipped:

b9c2b2d0d8 Eglot: bump version to 1.24.31 and update EGLOT-NEWS
2026-08-15 11:00:55 -04:00
Eli Zaretskii bd537c899d Merge from origin/emacs-31
da0565d9b5 Flymake: really restore advertised compatibility to Emacs 26
8f6e2cc66b ; * etc/EGLOT-NEWS: Briefly mention recent changes.
b86b9c195b Eglot: support commas in globs (bug#81425)
65efc35a91 Eglot: respect e-stay-out-of when turning off (bug#81593)
7d2988e7e4 Fix Custom keybindings in the documentation
1c69563a1c ; Fix last change in dframe.el
5f6ffef879 ; Improve and correct documentation of 'getenv'
83ec0fd8f3 Eglot: prevent showDocument disruption of sync requests (...
27ea7e6c1e * lisp/progmodes/sh-script.el (bash-ts-mode): Fix 'sexp-d...
73d959233e Fix setting windows' old_buffer in 'set-window-configurat...
8b32d77a07 Fix defcustom type of 'dframe-update-speed'
a56e964941 Speedbar: no more stale idle timers (bug#81561)

# Conflicts:
#	etc/NEWS
2026-08-15 11:00:49 -04:00
Eli Zaretskii 07bd2e2cf9 ; Merge from origin/emacs-31
The following commit was skipped:

c9cedb4e11 ; * etc/NEWS: Presentational fixes and improvements.
2026-08-15 10:56:20 -04:00
Eli Zaretskii bdc9348b9e Merge from origin/emacs-31
65eff4fd4f ; Properly initialize 'package-load-list' for 'package-is...
effafd92e0 Load all dependencies when isolating a package
293eaf323a Have 'frame-deletable-p' check other frame's terminal (Bu...
2026-08-15 10:56:19 -04:00
Eli Zaretskii 3c680886ec ; Merge from origin/emacs-31
The following commits were skipped:

ab5062855d ; * etc/NEWS: Move "Miscellaneous" to end of its section.
75b4b8932f ; * etc/NEWS: Copyedit.
f561bc6c37 ; * etc/NEWS: Use a non-commercial example.
2026-08-15 10:56:19 -04:00
Eli Zaretskii 080e2603df Merge from origin/emacs-31
ef69bf7b42 Eglot: Add vala mode support
2026-08-15 10:56:19 -04:00
Eli Zaretskii 867b20aa2b ; Fix comments of last commit (bug#81223)
* lisp/emacs-lisp/comp-run.el (comp--run-async-workers): Fix
punctuation in comments; add details.
2026-08-15 16:39:04 +03:00
James Cherti 9b66f875b3 Fix file-missing error during async native compilation (bug#81223)
The async native compilation queue can sometimes retain stale jobs
for files that no longer exist on disk (for example, when files are
removed during a package upgrade or deletion).  Attempting to resolve
the target .eln filename for these missing files signals a
file-missing error.
* lisp/emacs-lisp/comp-run.el (comp--run-async-workers): Verify
source files exist before attempting to resolve their .eln paths in
the dispatch loop.  In the process sentinel, wrap the compilation
block in a condition-case to catch file-missing errors and prevent
the async worker queue from stalling.
2026-08-15 16:34:36 +03:00
Eli Zaretskii 6d31288070 MS-Windows specific fixes of font selection
* src/w32font.c (font_supported_scripts): Fix 'tai-lue' bits.
Remove 'kanbun'.  Fix 'cypriot-syllabary'.  Fix 'symbol' bits.
(fill_in_logfont): Remove 'kanbun'.  Don't ask for GB2312 fonts
when looking for fonts supporting Yi script on Windows 10 or
later, as that causes supporting fonts to be missed.
2026-08-15 14:56:09 +03:00
Eli Zaretskii a9d79796e2 Improve fontset setup for some scripts
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Add scripts which were mistakenly
omitted.  Fix fontset setup for Syriac and N'ko scripts.  Add
ol-onal.  More symbols supported by Symbola.

* admin/unidata/blocks.awk: Special rules for U+FFFC and U+FFFD.
Map Kanbun to han.  Map Vertical Forms to cjk-misc.
2026-08-15 14:52:08 +03:00
Harald Jörg 7861c30642 cperl-mode.el: Support Perl 5.44: named parameters in signatures
* lisp/progmodes/cperl-mode.el (cperl--signature-rx): Allow for a
colon before a variable name to declare a named parameter
(cperl--sloppy-signature-rx): dito
(cperl-init-faces): dito
(introduction): Delete an obsolete comment

* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-signature-rx): Add a test case for a signature with
named parameters
(cperl-test-fontify-attrs-and-signatures): Verify correct
fontification of a named parameter

* test/lisp/progmodes/cperl-mode-resources/proto-and-attrs.pl: Add
test code for named signatures

* etc/NEWS: Announce Perl 5.44 syntax support
2026-08-15 00:27:07 +02:00
João Távora 7cf18b0d18 Flymake: use proper point-setting hygiene (bug#81621)
A report touches the eol overlays whose style could be influenced by
current-ish position.  Saving point and going back to it, isn't 100%
accurate (point may have moved between scheduling and multiple reports),
but it is probably more than decent.  A marker would be better but
requires at least a buffer-local var for proper cleanup, which is
overkill IMO.

* lisp/progmodes/flymake.el (flymake-make-report-fn): Use
point-marker and save-excursion.
2026-08-14 23:16:57 +01:00
Sean Whitton 4fb098ae3f vc-dir-maybe-narrow-and-show-more-button: Affect only VC-Dir buffers
* lisp/vc/vc-dir.el (vc-dir-maybe-narrow-and-show-more-button):
Do nothing if vc-parent-buffer is not in vc-dir-mode.
2026-08-14 15:45:22 +01:00
Sean Whitton f6e3b4232f ; Fix docs for browse-url-transform-alist.
See <https://lists.gnu.org/archive/html/emacs-devel/2026-08/msg00303.html>.
2026-08-14 10:40:53 +01:00
Stéphane Marks 71df1ea6d0 Fix Fns_block_system_sleep to respect activity_id lifetime (bug#81577)
* src/nsfns.m (Fns_block_system_sleep): Move unblock_input after
setting activity_id.
2026-08-14 08:56:10 +01:00
Stephen Berman cb22cfe141 ; Fix last change to 'dired-insert-subdir'
* lisp/dired-aux.el (dired-insert-subdir): Call
`dired--check-use-ls-dired' instead of inlining the body of the
removed function `dired--ls-accept-b-switch-p'.
2026-08-13 18:41:35 +02:00
Martin Rudalics 06321adfb3 ; Document how to use the new 'display-buffer-default-alist' variable
* lisp/window.el (display-buffer-default-alist): Rewrite doc-string.
* doc/lispref/windows.texi (Choosing Window): Say how to use the
new 'display-buffer-default-alist' variable.
2026-08-13 10:46:21 +02:00
Alan Mackenzie 65ca6e153c Correct calculation of ObjC Mode imenu entries:
This fixes a bug reported on 2026-08-08 on bug-cc-mode.gnu.org.

* lisp/progmodes/cc-menus.el
(cc-imenu-objc-generic-expression): Reverse the order of the
tests in the regexp for a C function and for @implementation
(etc.), so that "@end // Classname (foo)" won't get recognised
as a C function.
(cc-imenu-objc-function): Test an ostensible "C function" for
having a ?@ at column 0.  Further coding fixes to prevent ghost
entries getting appended to the function's result, and to
append all pertinent method entries.
2026-08-12 20:40:06 +00:00
F. Jason Park 769bd89281 Remove assertion in erc-speedbar--dframe-controlled
* lisp/erc/erc-speedbar.el (erc-speedbar--ensure): Remove assertion for
robustness even though it should still pass.
(erc-speedbar--get-timers): Remove unused function.
(erc-speedbar--dframe-controlled): Fix failing assertion related to
changes from bug#81561, namely the negating of the condition in
`dframe-set-timer' that checks whether `dframe-client-functions' is
nonempty.
* test/lisp/erc/erc-scenarios-status-sidebar.el
(erc-scenarios-status-sidebar--nickbar): Inline body of deleted function
`erc-speedbar--get-timers'.
2026-08-12 12:10:49 -07:00
Eli Zaretskii d65a5148b1 ; Fix recently-installed documentation
* lisp/replace.el (query-replace-show-preview)
(replace-preview-cleanup):
* doc/emacs/search.texi (Replace): Improve wording of
documentation of the query-replace preview feature.
2026-08-12 14:08:12 +03:00
Eli Zaretskii 5e304cd5fc ; * etc/NEWS: Fix punctuation. 2026-08-12 13:56:56 +03:00
Eli Zaretskii 2dca4a8854 ; Fix recently-installed documentation changes
* doc/lispref/windows.texi (Deleting Windows):
* doc/lispref/frames.texi (Frame Size, Child Frame Properties):
Fix typo and cross-references.
2026-08-12 13:49:14 +03:00
Martin Rudalics c693e12efa ; Minor doc fix
* doc/lispref/windows.texi (Choosing Window): Say "wrapped"
instead of "nested".
2026-08-12 10:45:08 +02:00
Martin Rudalics 6f71867f27 ; Clarify issues with frames and windows in Elisp manual
* doc/lispref/frames.texi (Frame Size): Deepen explanation of
"gravity".
(Deleting Frames): Mention terminal when deciding whether a
frame can be safely deleted.
(Child Frame Properties): Cover tab-line dragging.
* doc/lispref/windows.texi (Windows and Frames, Window Sizes)
(Deleting Windows, Changing Window Layouts, Switching Buffers)
(Buffer Display Action Functions, Buffer Display Action Alists)
(Window Parameters): Minor fixes.
2026-08-12 10:29:14 +02:00
Stefan Monnier d0653e8f09 lisp/custom.el (custom-declare-variable): Fix thinko 2026-08-11 22:37:21 -04:00
João Távora b9c2b2d0d8 Eglot: bump version to 1.24.31 and update EGLOT-NEWS
This is a change specific to emacs-31.  Don't merge to master.

* lisp/progmodes/eglot.el: (Version): Mark it 1.24.31

* etc/EGLOT-NEWS (1.24.31): Fill in section.
2026-08-12 01:10:42 +01:00
João Távora d0fabe8228 Eglot: improve manual's section on performance slightly
* doc/misc/eglot.texi (Performance): Reword.
(Eglot Features): Fix references.
(Other Variables): Describe eglot-managed-mode-hook here.
2026-08-12 00:54:10 +01:00
João Távora 6223d243da Flymake: rework inline diagnostic text annotations
Replace flymake-show-diagnostics-at-end-of-line with a simpler, more
powerful flymake-inline-diagnostics.  The new variable has an easier name
offers the new possibilities inspired by other packages, of having only
the current diagnostic be affected by each setting..

* doc/misc/flymake.texi: Update.

* etc/NEWS: Update

* lisp/progmodes/flymake.el (flymake-annotation-style): New variable.
(flymake-inline-annotation-face)
(flymake-error-inline, flymake-warning-inline)
(flymake-note-inline): New faces.
(flymake--highlight-line)
(flymake--handle-report)
(flymake-after-change-function): Update to use new variable name.
(flymake--update-current-eol-overlay): New helper.
(flymake--eol-current-overlay): New variable.
(flymake--update-all-eol-overlays): Rename from flymake--update-eol-overlays.
(flymake-make-report-fn): Keep point stable.
(flymake--update-eol-overlays): Tweak.
(flymake--eol-overlay-summary): Rewrite.
(flymake-mode): Set post-command-hook
(flymake--update-eol-overlays): Rework.
(flymake--update-eol-overlays-1): New helper.
(flymake-diagnostic-format-alist): Enhance.
(flymake--format-diagnostic): Handle old :eol value.
(flymake-inline-annotation-face)
(flymake-error-inline)
(flymake-warning-inline)
(flymake-note-inline): New faces.
(flymake-show-diagnostics-at-end-of-line)
(flymake-end-of-line-diagnostics-face)
(flymake-error-echo-at-eol)
(flymake-warning-echo-at-eol)
(flymake-note-echo-at-eol): Deprecate
(flymake--eol-draw-fancy): Tweak geometry slightly
2026-08-12 00:54:10 +01:00
João Távora 5fda2f63ff Flymake: more adjustments to inline diagnostics
* lisp/progmodes/flymake.el (flymake--highlight-line): Simplify
eol overlay cleanup logic.
2026-08-12 00:54:10 +01:00
João Távora c03e30eb42 Flymake: respect part order in flymake-diagnostic-text
* lisp/progmodes/flymake.el (flymake-diagnostic-text): Rewrite
2026-08-12 00:54:09 +01:00
João Távora da0565d9b5 Flymake: really restore advertised compatibility to Emacs 26
Emacs 26 doesn't have with-supressed-warnings

bug#79930

* lisp/progmodes/flymake.el (flymake-goto-next-error): Use with-no-warnings.
(Version): Bump to 1.4.6
2026-08-12 00:39:50 +01:00
João Távora 8f6e2cc66b ; * etc/EGLOT-NEWS: Briefly mention recent changes. 2026-08-12 00:20:37 +01:00
João Távora b86b9c195b Eglot: support commas in globs (bug#81425)
* lisp/progmodes/eglot.el (eglot--glob-parse): Tweak.

* test/lisp/progmodes/eglot-tests.el (eglot-test-glob-test): Add
some comma-cases.
2026-08-12 00:18:43 +01:00
Aaron L. Zeng 65efc35a91 Eglot: respect e-stay-out-of when turning off (bug#81593)
* lisp/progmodes/eglot.el (eglot--managed-mode): Respect
`eglot-stay-out-of' during teardown/reconnect.
2026-08-11 23:28:15 +01:00
Alan Third 902f8eb633 Fix freeze in NS event handling (bug#81510)
* src/nsterm.m (EV_TRAILER): Don't queue event if it's of kind
'NO_EVENT'.
2026-08-11 19:48:08 +01:00
Juri Linkov 7d2988e7e4 Fix Custom keybindings in the documentation
* etc/NEWS:
* doc/emacs/custom.texi (Changing a Variable):
Use more user-friendly representation of the
key sequence 'C-c TAB' as it's displayed in
the Help buffer for 'Custom-goto-first-choice'.
Fix typos in keybindings.
2026-08-11 20:56:29 +03:00
Rahul Martim Juliato 765411f0cd Preview the replacement text while it is typed (bug#81583)
* lisp/replace.el (query-replace-show-preview): New user option.
(query-replace-preview): New face.
(query-replace-eval-replacement-regexp): New constant, extracted
from...
(query-replace-compile-replacement): ...here.
(replace-preview-overlays): New variable.
(replace-preview-cleanup, replace-preview-update)
(replace-preview-setup): New functions.
(query-replace-read-to): New optional argument DELIMITED-FLAG.
(query-replace-read-args): Pass the delimited flag to
'query-replace-read-to'.
* lisp/isearch.el (isearch-query-replace): Pass the delimited
flag to 'query-replace-read-to'.
* test/lisp/replace-tests.el (replace-tests--preview): New
helper.
(replace-tests-preview-update, replace-tests-preview-cleanup)
(replace-tests-preview-disabled): New tests.
* doc/emacs/search.texi (Replace): Document the preview.
* etc/NEWS: Announce it.
2026-08-11 20:22:56 +03:00
Roi Martin fcee0b4ff1 Reimplement `outline-occur' using Xref and match Outline headings
Outline provides two search strategies to locate headings.  If
`outline-search-function' is defined, it is used to find the headings.
Otherwise, `outline-regexp' is used.  Reimplement `outline-occur' as
`outline-xref' using Xref and accepting a search function.  This
supports both search strategies and ensures that the headings detected
by `outline-xref' match the Outline ones.

* lisp/outline.el (outline-mode-prefix-map): Update binding.
(outline-mode-menu-bar-map): Update menu item.
(outline-occur-regexp): Remove variable.
(outline-occur): Remove function.
(outline-xref--fetch-headings, outline-xref--show-xrefs, outline-xref):
New functions (bug#81579).
* test/lisp/outline-tests.el (outline-tests--outline-occur)
(outline-tests--outline-occur-override)
(outline-tests--outline-occur-undefined-regexp): Remove tests.
(outline-tests--outline-xref-search-function)
(outline-tests--outline-xref-regexp)
(outline-tests--outline-xref-undefined): New tests.
2026-08-11 20:06:15 +03:00
Stefan Monnier 7e9e10d984 (custom-declare-variable): Check values previously set via setopt
Rename `custom-check-value` to  `custom-check-values` and make it hold
a list of values whose type-check is pending.  Check it in
`custom-declare-variable` rather than `custom-initialize-reset` to fix
bug#81372.

* lisp/custom.el (custom-initialize-reset): Don't type check previous
setopt values.
(custom-declare-variable): Do it here instead.  Change warning message
to clarify that the erroneous value was provided in some earlier setopt call.

* lisp/cus-edit.el (setop--set): Push to the `custom-check-values` only if
we can't do the type check yet, to avoid duplicate warnings (and memory
leaks).
(setopt--set-local): Fix indentation and add FIXMEs.
2026-08-11 12:28:04 -04:00
Michael Albinus 65b1e84397 Handle older inotifywait versions in Tramp
* lisp/net/tramp-sh.el (tramp-remote-inotifywait-with-P): New defun.
(tramp-sh-handle-file-notify-add-watch): Use it.

* lisp/net/tramp.el (with-tramp-progress-reporter):
Let-bind `inhibit-message'.
2026-08-11 12:12:24 +02:00
Eli Zaretskii 1c69563a1c ; Fix last change in dframe.el 2026-08-10 17:54:28 +03:00
Eli Zaretskii 5f6ffef879 ; Improve and correct documentation of 'getenv'
* lisp/env.el (getenv): Doc fix.

* doc/lispref/frames.texi (Basic Parameters): Document the
'environment' frame parameter.
* doc/lispref/os.texi (System Environment): Document the FRAME
argument to 'getenv'.  (Bug#81591)
2026-08-10 17:51:12 +03:00
Eli Zaretskii 69b186c1bc Fix move_it_* functions when moving across face with :box
* src/xdisp.c (move_it_in_display_line_to): Restore the
it->start_of_box_run_p flag upon exiting, to the value it had
before calling PRODUCE_GLYPHS for the last time, if the iterator
didn't move to the next display element.  This prevents losing the
flag in further calls to move_it_* functions.  (Bug#81570)
2026-08-10 16:17:00 +03:00
João Távora 83ec0fd8f3 Eglot: prevent showDocument disruption of sync requests (bug#81538)
This couldn't be reproduced here, but seems nevertheless possible.  The
previous (run-at-time 0...) technique for the window/showDocument
handling never really avoided the fact that that timer could kick during
the accept-process-output of jsonrpc-request, thus happening before the
response to the original request.  Since the handling evolves a lot of
output to send to the process, it could be interrupted by the 'throw'
that's meant to exit abort 'accept-process-output' (and only that).

This commit should ensure the sequence is always this one.

a1. -> adals/ff-thingy sync client request
b1.   <- window/showDocument server request
b2.   -> window/showDocument client response (after scheduling 'c')
a2. <- ada/ff-thingy server response
c.  -> f-f-no-select, Eglot sends the large didOpen notification

* lisp/progmodes/eglot.el (eglot-handle-request): Maybe use
"post command" once trick.
2026-08-09 22:37:59 +01:00
Juri Linkov 27ea7e6c1e * lisp/progmodes/sh-script.el (bash-ts-mode): Fix 'sexp-default' thing.
Handle 'sexp-default' thing in 'treesit-thing-settings'
for "${a}" in addition to "$(a)".
2026-08-09 20:54:16 +03:00
Martin Rudalics 73d959233e Fix setting windows' old_buffer in 'set-window-configuration' (Bug#81589)
* src/window.c (struct save_window_data): New slot change_stamp.
(Fset_window_configuration): Restore the old_buffer of a window
from the saved old_buffer only if the change stamps of the frame
and save_window_data are the same (Bug#81589).
(Fcurrent_window_configuration): Store FRAME's current change
stamp in save_window_data.
2026-08-09 18:32:31 +02:00
Daniel Mendler 8b32d77a07 Fix defcustom type of 'dframe-update-speed'
* lisp/dframe.el (dframe-update-speed): Generalize type from integer to
number and update docstring.  (Bug#81560)
2026-08-09 18:53:05 +03:00
Vincenzo Pupillo a56e964941 Speedbar: no more stale idle timers (bug#81561)
* lisp/dframe.el (dframe-set-timer): Fixed the condition for removing
the timer (the code does not match what is written in the comment).
* lisp/speedbar.el (speedbar-window--close): 'speedbar-set-timer' must
be called from the 'speedbar-buffer'.
2026-08-09 18:09:13 +03:00
Michael Albinus c9cedb4e11 ; * etc/NEWS: Presentational fixes and improvements. 2026-08-09 16:27:54 +02:00