mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 04:21:24 +00:00
213 lines
7.5 KiB
Text
213 lines
7.5 KiB
Text
GNU Emacs NEWS -- history of user-visible changes.
|
||
|
||
Copyright (C) 2022-2026 Free Software Foundation, Inc.
|
||
See the end of the file for license conditions.
|
||
|
||
Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'.
|
||
If possible, use 'M-x report-emacs-bug'.
|
||
|
||
This file is about changes in Emacs version 32.
|
||
|
||
See file HISTORY for a list of GNU Emacs versions and release dates.
|
||
See files NEWS.31, NEWS.30, ..., NEWS.18, and NEWS.1-17 for changes
|
||
in older Emacs versions.
|
||
|
||
You can narrow news to a specific version by calling 'view-emacs-news'
|
||
with a prefix argument or by typing 'C-u C-h C-n'.
|
||
|
||
Temporary note:
|
||
+++ indicates that all relevant manuals in doc/ have been updated.
|
||
--- means no change in the manuals is needed.
|
||
When you add a new item, use the appropriate mark if you are sure it
|
||
applies, and please also update docstrings as needed.
|
||
|
||
|
||
* Installation Changes in Emacs 32.1
|
||
|
||
|
||
* Startup Changes in Emacs 32.1
|
||
|
||
|
||
* Changes in Emacs 32.1
|
||
|
||
---
|
||
** Emacs no longer kills child processes after EPIPE.
|
||
Previously, Emacs would immediately kill a child process and set its
|
||
exit status to 256 if sending input to that process returned EPIPE.
|
||
Now when this happens, Emacs closes the file descriptor to write to the
|
||
child process, but allows it to continue execution as normal.
|
||
|
||
---
|
||
** New variable 'tty-cursor-movement-use-TAB'.
|
||
If this is set to the nil value, Emacs will not use TABs to optimize
|
||
cursor motion on text-mode terminals. This is for the rare cases where
|
||
the hardware tabs of the terminal were set to a non-default value by the
|
||
'tabs' command or similar, or if using TABs for cursor movement has any
|
||
other undesired effects. The default is t, which preserves past
|
||
behavior.
|
||
|
||
If this variable is nil, 'tty-cursor-movement-use-TAB-BS' has no effect,
|
||
and Emacs will never use TABs for any cursor-movement sequences.
|
||
|
||
---
|
||
** File- and directory-local variables respect user option setters.
|
||
Values of variables that are user options mentioned in file-local
|
||
variable sections and directory-locals via ".dir-locals.el" are now
|
||
set similarly to 'setopt-local'; i.e., if a user option has a defcustom
|
||
':set' function, that function will be invoked.
|
||
|
||
---
|
||
** New user option 'setopt-local-type-mismatch'.
|
||
This option controls what 'setopt-local' does when it detects a type
|
||
mismatch between the specified value and the :type specification of a
|
||
user option. Its backward-compatible default is nil which emits a
|
||
warning and accepts the type-mismatched value. You can control this by
|
||
customizing 'setopt-local-type-mismatch' to a non-nil value: the value
|
||
'accept' inhibits the warning and silently accepts type-mismatched
|
||
values; the value 'discard' inhibits the warning and discards
|
||
type-mismatched values; any other non-nil value prompts you whether to
|
||
accept or ignore the value.
|
||
|
||
---
|
||
** Specifying a minor mode as a local variables enables that mode,
|
||
unconditionally. The previous behavior, toggling the mode, was
|
||
neither reliable nor generally desirable.
|
||
|
||
+++
|
||
** Emacs tries to display overlay arrow in the left margin.
|
||
On a non-graphical display (or when the left fringe is not shown), if a
|
||
left margin is present, Emacs will now display the overlay arrow into
|
||
this margin. Edebug is now using this feature by explicitly setting up
|
||
a left margin for it.
|
||
|
||
|
||
* Editing Changes in Emacs 32.1
|
||
|
||
|
||
* Changes in Specialized Modes and Packages in Emacs 32.1
|
||
|
||
** Package
|
||
|
||
---
|
||
*** Package-vc can copy local changes from existing installations.
|
||
When installing the latest release of a package, 'package-vc' will
|
||
propose copying files from an existing tarball installation of the same
|
||
package with the same version. This is useful if you have started
|
||
making local changes to your tarball installation, and then decided to
|
||
check out the repository to prepare a patch for the package maintainer.
|
||
|
||
** Compilation mode
|
||
|
||
---
|
||
*** Messages from Ansible are now recognized.
|
||
|
||
** VC
|
||
|
||
+++
|
||
*** VC-Dir outgoing revisions count is now asynchronous.
|
||
This means it won't get in your way even if it's slow for your
|
||
repository. As such, the 'vc-dir-show-outgoing-count' option is now
|
||
obsolete.
|
||
|
||
** Outline mode
|
||
|
||
*** New command 'outline-show-entry-and-parents'.
|
||
It is bound to 'C-e' and reveals the current entry
|
||
with its parent hierarchy.
|
||
|
||
---
|
||
*** New function 'outline-search-from-regexp'.
|
||
A generic 'outline-search-function' implementation driven by
|
||
'outline-regexp', suitable for modes or minor modes that customize
|
||
'outline-regexp' but do not need a custom search strategy.
|
||
Install it with:
|
||
|
||
(setq-local outline-search-function #'outline-search-from-regexp)
|
||
|
||
---
|
||
*** 'outline-search-function' is now a user option.
|
||
Previously a plain variable, it is now a 'defcustom'
|
||
with named choices for the predefined search functions
|
||
('outline-search-from-regexp' and 'outline-search-level')
|
||
as well as the default nil and arbitrary user functions.
|
||
|
||
|
||
* New Modes and Packages in Emacs 32.1
|
||
|
||
** New major modes based on the tree-sitter library
|
||
|
||
*** New major mode 'markdown-ts-mode'.
|
||
A major mode based on the tree-sitter library for editing Markdown
|
||
files. Markdown files are visited using this mode when the required
|
||
tree-sitter grammars ('markdown' and 'markdown-inline') are available,
|
||
or when the user has opted in via 'treesit-enabled-modes'. Otherwise,
|
||
Markdown files fall back to 'text-mode'.
|
||
|
||
To install the grammars, use 'M-x markdown-ts-mode-install-parsers'.
|
||
|
||
|
||
* Incompatible Lisp Changes in Emacs 32.1
|
||
|
||
|
||
* Lisp Changes in Emacs 32.1
|
||
|
||
+++
|
||
** 'kill-all-local-variables' can kill locals silently and reset the buffer.
|
||
This function's KILL-PERMANENT argument now accepts the value
|
||
'permanent-local', which kills all locals ignoring any variable
|
||
watchers. That argument can also be 'reset', which does what
|
||
'permanent-local' does, and also resets the buffer as if it were newly
|
||
created. Use these with caution to avoid unexpected behavior such as
|
||
'default-directory' being reset to nil.
|
||
|
||
---
|
||
** 'with-work-buffer' kills all locals silently and resets its buffers.
|
||
When this macro returns a buffer to its buffer pool, it now kills all
|
||
buffer locals silently, ignoring any variable watchers, and resets the
|
||
buffer as if it were newly created.
|
||
|
||
+++
|
||
** The new function 'markers-in' returns the set of markers in a region.
|
||
|
||
---
|
||
** New variable 'completion-frontend-properties'.
|
||
This variable generalizes the 'completion-lazy-hilit' variable added in
|
||
Emacs 30. It allows Lisp programs that present completion candidates
|
||
("completion frontends") to provide additional information which can be
|
||
used to adjust or optimize completion candidates computation.
|
||
|
||
** D-Bus
|
||
|
||
+++
|
||
*** Support error handler in asynchronous method calls.
|
||
The HANDLER argument of 'dbus-call-method-asynchronously' can be a cons
|
||
cell '(HANDLER . ERROR-HANDLER)'. ERROR-HANDLER is invoked if the
|
||
method call returns with a D-Bus error; the error is passed as argument.
|
||
|
||
|
||
* Changes in Emacs 32.1 on Non-Free Operating Systems
|
||
|
||
|
||
----------------------------------------------------------------------
|
||
This file is part of GNU Emacs.
|
||
|
||
GNU Emacs is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation, either version 3 of the License, or
|
||
(at your option) any later version.
|
||
|
||
GNU Emacs is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||
|
||
|
||
Local variables:
|
||
coding: utf-8
|
||
mode: outline
|
||
mode: emacs-news
|
||
paragraph-separate: "[ ]"
|
||
end:
|