2024-06-23 10:56:48 +00:00
|
|
|
|
GNU Emacs NEWS -- history of user-visible changes.
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2022-2024 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 31.
|
|
|
|
|
|
|
|
|
|
See file HISTORY for a list of GNU Emacs versions and release dates.
|
|
|
|
|
See files NEWS.30, NEWS.29, ..., 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 31.1
|
|
|
|
|
|
2024-07-25 11:38:27 +00:00
|
|
|
|
** Changed GCC default options on 32-bit x86 systems.
|
|
|
|
|
When using GCC 4 or later to build Emacs on 32-bit x86 systems,
|
|
|
|
|
'configure' now defaults to using the GCC options '-mfpmath=sse' (if the
|
|
|
|
|
host system supports SSE2) or '-fno-tree-sra' (if not). These GCC
|
|
|
|
|
options work around GCC bug 58416, which can cause Emacs to behave
|
|
|
|
|
incorrectly in rare cases.
|
2024-07-19 20:39:21 +00:00
|
|
|
|
|
2024-09-17 11:07:01 +00:00
|
|
|
|
---
|
|
|
|
|
** New configuration option '--disable-gc-mark-trace'.
|
|
|
|
|
This disables the GC mark trace buffer for about 5 % better garbage
|
|
|
|
|
collection performance. Doing so may make it more difficult for Emacs
|
|
|
|
|
developers to help finding GC-related bugs that you run into, which is
|
|
|
|
|
why it the mark trace buffer is enabled by default.
|
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* Startup Changes in Emacs 31.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Changes in Emacs 31.1
|
|
|
|
|
|
2024-07-16 14:05:40 +00:00
|
|
|
|
---
|
2024-07-25 11:38:27 +00:00
|
|
|
|
** find-func.el commands now have history enabled.
|
2024-07-16 14:05:40 +00:00
|
|
|
|
The 'find-function', 'find-library', 'find-face-definition', and
|
|
|
|
|
'find-variable' commands now allow retrieving previous input using the
|
|
|
|
|
usual minibuffer history commands. Each command has a separate history.
|
|
|
|
|
|
2024-10-04 00:28:21 +00:00
|
|
|
|
---
|
|
|
|
|
** New minor mode find-function-mode replaces the old find-function-setup-keys.
|
|
|
|
|
|
2024-08-21 15:59:42 +00:00
|
|
|
|
** Minibuffer and Completions
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New user option 'completion-pcm-leading-wildcard'.
|
|
|
|
|
This option configures how the partial-completion style does completion.
|
|
|
|
|
It defaults to nil, which preserves the existing behavior. When it is set
|
|
|
|
|
to t, the partial-completion style behaves more like the substring
|
|
|
|
|
style, in that a string being completed can match against a candidate
|
|
|
|
|
anywhere in the candidate string.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** 'completion-styles' now can contain lists of bindings.
|
|
|
|
|
In addition to being a symbol naming a completion style, an element of
|
|
|
|
|
'completion-styles' can now be a list of the form '(STYLE ((VARIABLE
|
|
|
|
|
VALUE) ...))' where STYLE is a symbol naming a completion style.
|
|
|
|
|
VARIABLE will be bound to VALUE (without evaluating it) while the style
|
|
|
|
|
is executing. This allows multiple references to the same style with
|
|
|
|
|
different values for completion-affecting variables like
|
2024-08-24 10:49:48 +00:00
|
|
|
|
'completion-pcm-leading-wildcard' or 'completion-ignore-case'. This also
|
2024-08-21 15:59:42 +00:00
|
|
|
|
applies for the styles configuration in 'completion-category-overrides'
|
|
|
|
|
and 'completion-category-defaults'.
|
|
|
|
|
|
2024-08-01 07:37:50 +00:00
|
|
|
|
** Windows
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New hook 'window-deletable-functions'.
|
|
|
|
|
This abnormal hook gives its client a way to save a window from getting
|
|
|
|
|
deleted implicitly by functions like 'kill-buffer', 'bury-buffer' and
|
2024-08-24 10:49:48 +00:00
|
|
|
|
'quit-restore-window'.
|
2024-08-01 07:37:50 +00:00
|
|
|
|
|
|
|
|
|
+++
|
2024-08-24 10:49:48 +00:00
|
|
|
|
*** New user option 'kill-buffer-quit-windows'.
|
2024-08-01 07:37:50 +00:00
|
|
|
|
This option has 'kill-buffer' call 'quit-restore-window' to handle the
|
|
|
|
|
further destiny of any window showing the buffer to be killed.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New window parameter 'quit-restore-prev'.
|
|
|
|
|
This parameter is set up by 'display-buffer' when it detects that the
|
|
|
|
|
window used already has a 'quit-restore' parameter. Its presence gives
|
|
|
|
|
'quit-restore-window' a way to undo a sequence of buffer display
|
|
|
|
|
operations more intuitively.
|
|
|
|
|
|
|
|
|
|
+++
|
2024-08-21 08:54:53 +00:00
|
|
|
|
*** 'quit-restore-window' handles new values for BURY-OR-KILL argument.
|
|
|
|
|
The values 'killing' and 'burying' are like 'kill' and 'bury' but assume
|
2024-08-01 07:37:50 +00:00
|
|
|
|
that the actual killing or burying of the buffer is done by the caller.
|
|
|
|
|
|
|
|
|
|
+++
|
2024-08-24 10:49:48 +00:00
|
|
|
|
*** New user option 'quit-restore-window-no-switch'.
|
2024-08-01 07:37:50 +00:00
|
|
|
|
With this option set, 'quit-restore-window' will delete its window more
|
|
|
|
|
aggressively rather than switching to some other buffer in it.
|
|
|
|
|
|
2024-08-21 08:54:53 +00:00
|
|
|
|
** Frames
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New function 'frame-deletable-p'.
|
|
|
|
|
Calling this function before 'delete-frame' is useful to avoid that the
|
2024-08-24 10:49:48 +00:00
|
|
|
|
latter throws an error when the argument FRAME cannot be deleted.
|
2024-08-21 08:54:53 +00:00
|
|
|
|
|
2024-07-16 04:55:35 +00:00
|
|
|
|
** Tab Bars and Tab Lines
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New abnormal hook 'tab-bar-auto-width-functions'.
|
|
|
|
|
This hook allows you to control which tab-bar tabs are auto-resized.
|
|
|
|
|
|
2024-09-05 13:56:50 +00:00
|
|
|
|
** Project
|
|
|
|
|
|
2024-09-08 02:14:02 +00:00
|
|
|
|
---
|
2024-09-16 23:11:52 +00:00
|
|
|
|
*** New command 'project-root-find-file'.
|
2024-09-08 02:14:02 +00:00
|
|
|
|
It is equivalent to running ‘project-any-command’ with ‘find-file’.
|
2024-09-05 13:56:50 +00:00
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* Editing Changes in Emacs 31.1
|
2024-08-04 11:54:27 +00:00
|
|
|
|
** Commands for keyboard translation
|
|
|
|
|
`key-translate' is now interactive. It prompts for a key to translate
|
|
|
|
|
from, and another to translate to, and sets `keyboard-translate-table'.
|
|
|
|
|
The new command `key-translate-remove' prompts for a key/translation
|
|
|
|
|
pair with completing-read, and removes it from the translation table.
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
2024-07-26 13:49:11 +00:00
|
|
|
|
** Internationalization
|
|
|
|
|
|
2024-09-12 18:12:09 +00:00
|
|
|
|
---
|
|
|
|
|
*** Emacs now supports Unicode version 16.0.
|
|
|
|
|
|
2024-07-26 13:49:11 +00:00
|
|
|
|
---
|
|
|
|
|
*** New language-environment and input method for Tifinagh.
|
|
|
|
|
The Tifinagh script is used to write the Berber languages.
|
|
|
|
|
|
2024-07-28 03:48:38 +00:00
|
|
|
|
---
|
|
|
|
|
** 'visual-wrap-prefix-mode' now supports variable-pitch fonts.
|
|
|
|
|
When using 'visual-wrap-prefix-mode' in buffers with variable-pitch
|
|
|
|
|
fonts, the wrapped text will now be lined up correctly so that it's
|
|
|
|
|
exactly below the text after the prefix on the first line.
|
|
|
|
|
|
2024-09-06 10:35:46 +00:00
|
|
|
|
---
|
|
|
|
|
** New commands 'unix-word-rubout' and 'unix-filename-rubout'.
|
|
|
|
|
Unix-words are words separated by whitespace regardless of the buffer's
|
|
|
|
|
syntax table. In a Unix terminal or shell, C-w kills by Unix-word.
|
|
|
|
|
The new commands 'unix-word-rubout' and 'unix-filename-rubout' allow
|
|
|
|
|
you to bind keys to operate more similarly to the terminal.
|
2024-09-03 16:29:56 +00:00
|
|
|
|
|
|
|
|
|
---
|
2024-09-14 16:35:45 +00:00
|
|
|
|
** New user option 'kill-region-dwim'.
|
2024-09-03 16:29:56 +00:00
|
|
|
|
This option, if non-nil, modifies the fall-back behavior of
|
2024-09-18 17:20:19 +00:00
|
|
|
|
'kill-region' ('C-w') if no region is active, and will kill the last word
|
2024-09-03 16:29:56 +00:00
|
|
|
|
instead of raising an error. Note that if you have disabled Transient
|
|
|
|
|
Mark mode you might prefer to use 'unix-word-rubout', as this feature
|
|
|
|
|
relies on there being an active region.
|
|
|
|
|
|
2024-09-15 20:29:46 +00:00
|
|
|
|
---
|
|
|
|
|
** New user option 'delete-pair-push-mark'.
|
|
|
|
|
This option, if non-nil, makes 'delete-pair' push a mark at the end of
|
|
|
|
|
the region enclosed by the deleted delimiters. This makes it easy to
|
|
|
|
|
act on that region. For example, we can highlight it using 'C-x C-x'.
|
|
|
|
|
|
2024-09-21 10:15:16 +00:00
|
|
|
|
+++
|
|
|
|
|
** Electric Pair mode can now pair multiple delimiters at once.
|
|
|
|
|
You can now insert or wrap text with multiple sets of parentheses and
|
|
|
|
|
other matching delimiters at once with Electric Pair mode, by providing
|
|
|
|
|
a prefix argument when inserting one of the delimiters.
|
|
|
|
|
|
2024-10-03 10:36:45 +00:00
|
|
|
|
+++
|
|
|
|
|
** You can now use M-~ during C-x s ('save-some-buffers').
|
|
|
|
|
Typing M-~ while saving some buffers means not to save the buffer and
|
|
|
|
|
also to mark it as unmodified. This is an alternative way to mark a
|
|
|
|
|
buffer as unmodified which doesn't require switching to that buffer.
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* Changes in Specialized Modes and Packages in Emacs 31.1
|
|
|
|
|
|
2024-06-11 17:49:55 +00:00
|
|
|
|
** Whitespace
|
2024-06-29 13:04:32 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** 'whitespace-cleanup' now adds missing newline at end of file.
|
2024-07-25 11:38:27 +00:00
|
|
|
|
If 'whitespace-style' includes 'missing-newline-at-eof' (which is the
|
2024-06-29 13:04:32 +00:00
|
|
|
|
default), the 'whitespace-cleanup' function will now add the newline.
|
2024-06-11 17:49:55 +00:00
|
|
|
|
|
2024-08-28 16:33:20 +00:00
|
|
|
|
** Gnus
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Replying to icalendar events now supports specifying a comment.
|
|
|
|
|
When called with a prefix argument, accepting, declining, or tentatively
|
|
|
|
|
accepting an icalendar event will prompt for a comment to add to the
|
|
|
|
|
response.
|
|
|
|
|
|
2024-06-19 10:02:59 +00:00
|
|
|
|
** Eshell
|
|
|
|
|
|
|
|
|
|
---
|
2024-07-25 11:38:27 +00:00
|
|
|
|
*** New user option 'eshell-command-async-buffer'.
|
2024-06-19 10:02:59 +00:00
|
|
|
|
This option lets you tell 'eshell-command' how to respond if its output
|
|
|
|
|
buffer is already in use by another invocation of 'eshell-command', much
|
|
|
|
|
like 'async-shell-command-buffer' does for 'shell-command'. By default,
|
|
|
|
|
this will prompt for confirmation before creating a new buffer when
|
|
|
|
|
necessary. To restore the previous behavior, set this option to
|
|
|
|
|
'confirm-kill-process'.
|
|
|
|
|
|
2024-06-15 03:45:44 +00:00
|
|
|
|
+++
|
|
|
|
|
*** 'eshell-execute-file' is now an interactive command.
|
2024-07-25 11:38:27 +00:00
|
|
|
|
Interactively, this now prompts for a script file to execute. With the
|
2024-06-15 03:45:44 +00:00
|
|
|
|
prefix argument, it will also insert any output into the current buffer
|
|
|
|
|
at point.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** 'eshell-command' and 'eshell-execute-file' can now set where stderr goes.
|
|
|
|
|
These functions now take an optional ERROR-TARGET argument to control
|
|
|
|
|
where to send the standard error output. See the "(eshell) Entry
|
|
|
|
|
Points" node in the Eshell manual for more details.
|
|
|
|
|
|
2024-07-06 21:09:08 +00:00
|
|
|
|
+++
|
2024-07-25 11:38:27 +00:00
|
|
|
|
*** Eshell's built-in 'wait' command now accepts a timeout.
|
|
|
|
|
By passing '-t' or '--timeout', you can specify a maximum time to wait
|
2024-07-06 21:09:08 +00:00
|
|
|
|
for the processes to exit. Additionally, you can now wait for external
|
|
|
|
|
processes by passing their PIDs.
|
|
|
|
|
|
2024-06-23 19:18:57 +00:00
|
|
|
|
** SHR
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** SHR now slices large images into rows.
|
|
|
|
|
Sliced images allow for more intuitive scrolling up/down by letting you
|
|
|
|
|
scroll past each slice, instead of jumping past the entire image.
|
|
|
|
|
Previously, SHR sliced images when zoomed to their original size, no
|
2024-07-25 11:38:27 +00:00
|
|
|
|
matter how large or small that was. Now, SHR slices any images taller
|
2024-06-23 19:18:57 +00:00
|
|
|
|
than 'shr-sliced-image-height'. For more information, see the "(eww)
|
|
|
|
|
Advanced" node in the EWW manual.
|
|
|
|
|
|
2024-06-23 21:48:32 +00:00
|
|
|
|
---
|
|
|
|
|
*** You can now customize the image zoom levels to cycle through.
|
|
|
|
|
By customizing 'shr-image-zoom-levels', you can change the list of zoom
|
|
|
|
|
levels that SHR cycles through when calling 'shr-zoom-image'.
|
|
|
|
|
|
2024-06-30 14:42:38 +00:00
|
|
|
|
---
|
2024-08-20 13:57:25 +00:00
|
|
|
|
*** New user option 'shr-fill-text'.
|
|
|
|
|
When 'shr-fill-text' is non-nil (the default), SHR will fill text
|
|
|
|
|
according to the width of the window. If you customize it to nil, SHR
|
|
|
|
|
will leave the text as-is; in that case, EWW will automatically enable
|
|
|
|
|
'visual-line-mode' when displaying a page so that long lines are
|
|
|
|
|
visually wrapped at word boundaries.
|
2023-01-18 14:15:51 +00:00
|
|
|
|
|
2024-08-05 02:37:00 +00:00
|
|
|
|
** EWW
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** EWW now enables 'visual-wrap-prefix-mode' when 'shr-fill-text' is nil.
|
|
|
|
|
By default, 'shr-fill-text' is t, and EWW fills the text according to
|
|
|
|
|
the width of the window. If you customize 'shr-fill-text' to nil, EWW
|
|
|
|
|
will now automatically turn on 'visual-wrap-prefix-mode' in addition to
|
|
|
|
|
'visual-line-mode', so that long lines are wrapped at word boundaries
|
|
|
|
|
near window edge and the continuation lines are indented using prefixes
|
|
|
|
|
computed from surrounding context.
|
|
|
|
|
|
2024-09-25 21:06:07 +00:00
|
|
|
|
** CC Mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New type of 'c-offsets-alist' element.
|
|
|
|
|
The cdr of such an alist element may now be a syntactic symbol. A
|
|
|
|
|
source line with a syntactic element whose symbol is the car of that
|
|
|
|
|
alist element is indented as though it were the cdr.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Enums now have their own syntactic symbols.
|
|
|
|
|
The new symbols 'enum-open', 'enum-close', 'enum-intro' and
|
|
|
|
|
'enum-entry' are used in the analysis of enum constructs. Previously
|
|
|
|
|
they were given 'brace-list-open', etc. These are fully described in
|
|
|
|
|
the CC Mode manual.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Enums are now, by default, indented like classes, not brace-lists.
|
|
|
|
|
To get the old behavior back, add an element '(enum-open
|
|
|
|
|
. brace-list-open)' to 'c-offsets-alist' in your CC Mode style, or amend
|
|
|
|
|
'c-offsets-alist' likewise in any of the other ways detailed in the CC
|
|
|
|
|
Mode manual page "Config Basics".
|
|
|
|
|
|
2024-05-13 18:44:03 +00:00
|
|
|
|
** Go-ts mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New unit test commands.
|
|
|
|
|
Three new commands are now available to run unit tests.
|
|
|
|
|
|
|
|
|
|
The 'go-ts-mode-test-function-at-point' command runs the unit test at
|
|
|
|
|
point. If a region is active, it runs all the unit tests under the
|
|
|
|
|
region. It is bound to 'C-c C-t t' in 'go-ts-mode'.
|
|
|
|
|
|
|
|
|
|
The 'go-ts-mode-test-this-file' command runs all unit tests in the current
|
2024-07-25 11:38:27 +00:00
|
|
|
|
file. It is bound to 'C-c C-t f' in 'go-ts-mode'.
|
2024-05-13 18:44:03 +00:00
|
|
|
|
|
|
|
|
|
The 'go-ts-mode-test-this-package' command runs all unit tests under the
|
|
|
|
|
package of the current buffer. It is bound to 'C-c C-t p' in 'go-ts-mode'.
|
|
|
|
|
|
2024-07-25 11:38:27 +00:00
|
|
|
|
The 'go-ts-mode-build-tags' user option is available to set a list of
|
|
|
|
|
build tags for the test commands.
|
2024-05-13 18:44:03 +00:00
|
|
|
|
|
2024-09-09 07:20:42 +00:00
|
|
|
|
** C-ts mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New user option 'c-ts-mode-enable-doxygen'.
|
2024-09-21 09:42:43 +00:00
|
|
|
|
By default, this is nil, and the Doxygen comment blocks in C/C++ source
|
|
|
|
|
are highlighted like other comments. When non-nil, Doxygen comment
|
|
|
|
|
blocks are syntax-highlighted if the Doxygen grammar library is
|
|
|
|
|
available.
|
2024-09-09 07:20:42 +00:00
|
|
|
|
|
|
|
|
|
** Java-ts mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New user option 'java-ts-mode-enable-doxygen'.
|
2024-09-21 09:42:43 +00:00
|
|
|
|
By default, this is nil, and the Doxygen comment blocks in Java source
|
|
|
|
|
are highlighted like other comments. When non-nil, Doxygen comment
|
|
|
|
|
blocks are syntax-highlighted if the Doxygen grammar library is
|
|
|
|
|
available.
|
2024-09-09 07:20:42 +00:00
|
|
|
|
|
2024-07-06 15:36:30 +00:00
|
|
|
|
** Emacs Lisp mode
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Checkdoc no longer warns about missing footer lines in some cases.
|
|
|
|
|
Emacs Lisp libraries have traditionally ended with a footer line
|
|
|
|
|
(sometimes referred to as "terminating comment"). Their purpose was to
|
|
|
|
|
easily detect files that had been truncated in transit on ancient and
|
|
|
|
|
less reliable connections:
|
|
|
|
|
|
|
|
|
|
;; some-cool-package.el ends here
|
|
|
|
|
|
|
|
|
|
'checkdoc' will no longer warn if that line is missing for packages that
|
|
|
|
|
explicitly only support Emacs 30.1 or later, as specified in the
|
|
|
|
|
"Package-Requires" header. The reason for keeping the warning for
|
|
|
|
|
packages that support earlier versions of Emacs is that package.el in
|
|
|
|
|
those versions can't install packages where that line is missing.
|
|
|
|
|
|
|
|
|
|
This change affects both 'M-x checkdoc' and the corresponding flymake
|
|
|
|
|
backend.
|
|
|
|
|
|
2024-07-07 11:37:55 +00:00
|
|
|
|
---
|
|
|
|
|
*** Checkdoc will now flag incorrect formatting in warnings.
|
|
|
|
|
This affects calls to 'warn', 'lwarn', 'display-warning', and
|
|
|
|
|
'message-box'.
|
|
|
|
|
|
2024-07-07 11:40:59 +00:00
|
|
|
|
---
|
|
|
|
|
*** The default of 'checkdoc-verb-check-experimental-flag' is now nil.
|
|
|
|
|
In most cases, having it enabled leads to a large amount of false
|
|
|
|
|
positives.
|
|
|
|
|
|
2024-07-23 14:32:30 +00:00
|
|
|
|
** DocView
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Dedicated buffer for plain text contents.
|
|
|
|
|
When switching to the plain text contents with 'doc-view-open-text',
|
2024-07-25 11:38:27 +00:00
|
|
|
|
DocView now creates a dedicated buffer to display it. 'C-c C-c' gets you
|
2024-07-23 14:32:30 +00:00
|
|
|
|
back to real DocView buffer if it still exists.
|
2024-07-25 11:38:27 +00:00
|
|
|
|
|
2024-09-15 08:26:21 +00:00
|
|
|
|
+++
|
2024-09-28 09:11:57 +00:00
|
|
|
|
*** New commands to save and restore pages in buffer-local registers.
|
|
|
|
|
Docview can store current page to buffer-local registers with the new
|
|
|
|
|
command 'doc-view-page-to-register' (bound to 'm'), and later the stored
|
|
|
|
|
page can be restored with 'doc-view-jump-to-register' (bound to ''').
|
2024-09-15 08:26:21 +00:00
|
|
|
|
|
2024-07-25 11:38:27 +00:00
|
|
|
|
** Tramp
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Connection method "kubernetes" supports now optional namespace.
|
|
|
|
|
The host name for Kubernetes connections can be of kind
|
|
|
|
|
[CONTAINER.]POD[%NAMESPACE], in order to specify the namespace to be
|
2024-08-24 10:49:48 +00:00
|
|
|
|
used. This overrides the setting in 'tramp-kubernetes-namespace', if
|
2024-07-25 11:38:27 +00:00
|
|
|
|
any.
|
|
|
|
|
|
2023-08-19 09:47:54 +00:00
|
|
|
|
** Diff
|
|
|
|
|
|
|
|
|
|
---
|
2024-08-24 10:49:48 +00:00
|
|
|
|
*** New command 'diff-kill-ring-save'.
|
2023-08-19 09:47:54 +00:00
|
|
|
|
This command copies to the 'kill-ring' a region of text modified
|
|
|
|
|
according to diffs in the current buffer, but without applying the diffs
|
|
|
|
|
to the original text. If the selected range extends a hunk, the
|
2024-08-24 10:49:48 +00:00
|
|
|
|
command attempts to look up and copy the text in-between the hunks.
|
2023-08-19 09:47:54 +00:00
|
|
|
|
|
2024-09-24 08:38:43 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New command 'diff-revert-and-kill-hunk' bound to C-c M-r.
|
2024-09-26 11:24:18 +00:00
|
|
|
|
This command reverts the hunk at point (i.e., applies the reverse of the
|
2024-09-26 19:02:05 +00:00
|
|
|
|
hunk), and then removes the hunk from the diffs.
|
|
|
|
|
This is useful to undo or revert changes, committed and uncommitted, when
|
|
|
|
|
you are in buffers generated by 'C-x v =' and 'C-x v D'.
|
2024-09-24 08:38:43 +00:00
|
|
|
|
|
2024-09-10 18:18:39 +00:00
|
|
|
|
---
|
2024-09-27 05:47:13 +00:00
|
|
|
|
*** 'diff-file-prev' and 'diff-hunk-prev' always move to start of header.
|
|
|
|
|
Previously, 'diff-file-prev' and 'diff-hunk-prev' would move when point
|
|
|
|
|
is after the corresponding file or hunk header, but not when inside it.
|
|
|
|
|
Now they will always move to the start of the current header.
|
2024-09-10 18:18:39 +00:00
|
|
|
|
|
2024-09-30 13:08:38 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New command 'diff-delete-other-hunks' bound to C-c RET n.
|
|
|
|
|
This command deletes all hunks other than the current hunk. It is
|
|
|
|
|
useful to prepare a *vc-diff* buffer for committing a single hunk.
|
|
|
|
|
When the region is active, it deletes all hunks that the region does not
|
|
|
|
|
overlap.
|
|
|
|
|
|
2024-09-08 06:46:42 +00:00
|
|
|
|
** php-ts-mode
|
|
|
|
|
|
|
|
|
|
---
|
2024-09-11 15:42:24 +00:00
|
|
|
|
*** 'php-ts-mode-run-php-webserver' can now accept a custom "php.ini" file.
|
2024-09-08 06:46:42 +00:00
|
|
|
|
You can use the new optional argument CONFIG when calling
|
2024-09-11 15:42:24 +00:00
|
|
|
|
'php-ts-mode-run-php-webserver' to pass an alternative "php.ini" file to
|
2024-09-08 06:46:42 +00:00
|
|
|
|
the built-in Web server. Interactively, when invoked with a prefix
|
|
|
|
|
argument, 'php-ts-mode-run-php-webserver' prompts for the config file as
|
|
|
|
|
well as for other connection parameters.
|
|
|
|
|
|
2024-09-04 07:24:25 +00:00
|
|
|
|
** Ediff
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Ediff's copy commands now apply to all changes with 'C-u' prefix.
|
|
|
|
|
The Ediff copy commands, bound to 'a', 'b', 'ab', etc., now copy all
|
|
|
|
|
changes when supplied with a universal prefix argument via 'C-u':
|
|
|
|
|
|
|
|
|
|
- 'C-u a' copies all changes from buffer A to buffer B (in 2-way diff)
|
|
|
|
|
or to buffer C (in 3-way diff or merge).
|
|
|
|
|
- 'C-u b' copies all changes from buffer B to buffer A (in 2-way diff)
|
|
|
|
|
or to buffer C (in 3-way diff or merge).
|
|
|
|
|
- 'C-u a b' copies all changes from buffer A to buffer B.
|
|
|
|
|
- 'C-u b a' copies all changes from buffer B to buffer A.
|
|
|
|
|
- 'C-u a c' copies all changes from buffer A to buffer C.
|
|
|
|
|
- 'C-u b c' copies all changes from buffer B to buffer C.
|
|
|
|
|
- 'C-u c a' copies all changes from buffer C to buffer A.
|
|
|
|
|
- 'C-u c b' copies all changes from buffer C to buffer B.
|
|
|
|
|
|
2024-09-11 15:42:24 +00:00
|
|
|
|
** Dired
|
|
|
|
|
|
|
|
|
|
+++
|
2024-09-11 16:15:35 +00:00
|
|
|
|
*** New user option 'dired-check-symlinks' allows disabling validity checks.
|
|
|
|
|
Dired uses 'file-truename' to check symbolic link validity when
|
|
|
|
|
fontifying them, which can be slow for remote directories. Setting
|
|
|
|
|
'dired-check-symlinks' to nil disables these checks. Defaults to t, can
|
|
|
|
|
be set as a connection-local variable.
|
2024-09-11 15:42:24 +00:00
|
|
|
|
|
2024-09-09 14:38:04 +00:00
|
|
|
|
** Grep
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Grep results can be edited to reflect changes in the originating file.
|
|
|
|
|
Like Occur Edit mode, typing 'e' in the '*grep*' buffer will now make
|
|
|
|
|
the 'grep' results editable. The edits will be reflected in the buffer
|
|
|
|
|
visiting the originating file. Typing 'C-c C-c' will leave the Grep
|
|
|
|
|
Edit mode.
|
|
|
|
|
|
Provide a modified xref backend for TeX buffers
In addition to providing a new `xref' backend, the patch also improves
the general handling of expl3 syntax. Expl3 is the next-generation
LaTeX specification, and has for some time been available by default in
the LaTeX kernel. The new syntax co-exists in many files with the
standard LaTeX2e syntax, so we try at least minimally to separate the
way modes handle the two specifications, both to reduce
visually-disturbing interference between them and also to improve the
`xref' backend. (Bug#53749)
* lib-src/etags.c (TeX_commands): Improve parsing of commands in TeX
buffers.
(TEX_defenv): Expand list of commands to tag by default in TeX buffers.
(TeX_help):
* doc/emacs/maintaining.texi (Tag Syntax): Document new tagged commands.
(Identifier Search): Add note about semantic-symref-filepattern-alist,
auto-mode-alist, and xref-find-references.
* lisp/textmodes/tex-mode.el (tex-font-lock-suscript): Test for
underscore in expl3 files and regions, disable subscript face there.
(tex-common-initialization): Set up xref backend for in-tree TeX modes.
Detect expl3 files, and in others set up a list of expl3 regions.
(tex-expl-buffer-parse): New function called in previous.
(tex-expl-buffer-p): New variable to hold the result of previous.
(tex-expl-region-set): New function added to
'syntax-propertize-extend-region-functions' hook.
(tex-expl-region-list): New variable to hold the result of previous.
(tex--xref-backend): New function to identify the xref backend.
(tex--thing-at-point, tex-thingatpt--beginning-of-symbol)
(tex-thingatpt--end-of-symbol, tex--bounds-of-symbol-at-point):
New functions to return 'thing-at-point' for xref backend.
(tex-thingatpt-exclude-chars): New variable to do the same.
(xref-backend-identifier-at-point): New TeX backend method to provide
symbols for processing by xref.
(xref-backend-identifier-completion-table)
(xref-backend-identifier-completion-ignore-case)
(xref-backend-definitions, xref-backend-apropos): Placeholders to
call the standard 'etags' xref backend methods.
(xref-backend-references): Wrapper to call the default xref backend
method, finding as many relevant files as possible and using a bespoke
syntax-propertize-function when required.
(tex--collect-file-extensions, tex-xref-syntax-function): Helper
functions for previous.
(tex-find-references-syntax-table, tex--buffers-list)
(tex--xref-syntax-fun, tex--old-syntax-function): New variables for
the same.
2024-06-10 13:16:04 +00:00
|
|
|
|
** TeX modes
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New xref backend for TeX modes.
|
|
|
|
|
The new backend ('tex-etags') is on by default, and improves the
|
|
|
|
|
functionality of the standard 'xref' commands in TeX buffers. You can
|
|
|
|
|
restore the standard 'etags' backend with the 'M-x xref-etags-mode'
|
|
|
|
|
toggle.
|
|
|
|
|
|
2024-09-21 12:51:21 +00:00
|
|
|
|
** Midnight mode
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Change for activating the mode
|
|
|
|
|
Putting (require 'midnight) in your init file no longer activates the
|
|
|
|
|
mode. Now, one needs to say (midnight-mode +1) instead.
|
|
|
|
|
|
2024-09-29 21:29:54 +00:00
|
|
|
|
** Python mode
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Prefer "python" for 'python-interpreter' and 'python-shell-interpreter'.
|
|
|
|
|
On recent versions of mainstream GNU/Linux distributions, "python"
|
|
|
|
|
either does not exist or it points to Python 3. These user options now
|
|
|
|
|
default to using "python", falling back to "python3" if it does not
|
|
|
|
|
exist. If "python" points to Python 2 on your system, you now have to
|
|
|
|
|
customize these variables to "python3" if you want to use Python 3
|
|
|
|
|
instead.
|
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* New Modes and Packages in Emacs 31.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Incompatible Lisp Changes in Emacs 31.1
|
|
|
|
|
|
2024-09-24 18:01:26 +00:00
|
|
|
|
** Nested backquotes are not supported any more in Pcase patterns.
|
|
|
|
|
|
2024-08-01 08:29:10 +00:00
|
|
|
|
** The 'rx' category name 'chinese-two-byte' must now be spelled correctly.
|
|
|
|
|
An old alternative name (without the first 'e') has been removed.
|
|
|
|
|
|
2024-09-13 11:31:28 +00:00
|
|
|
|
---
|
|
|
|
|
** All the digit characters now have the 'digit' category.
|
|
|
|
|
All the characters whose Unicode general-category is Nd now have the
|
|
|
|
|
'digit' category, whose mnemonic is '6'. This includes both ASCII and
|
|
|
|
|
non-ASCII digit characters.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
** All the symbol characters now have the 'symbol' category.
|
|
|
|
|
All the characters that belong to the 'symbol' script (according to
|
|
|
|
|
'char-script-table') now have the 'symbol' category, whose mnemonic is
|
|
|
|
|
'5'.
|
|
|
|
|
|
2024-09-30 01:18:26 +00:00
|
|
|
|
** Some libraries obsolete since Emacs 24.4 and 24.5 have been removed:
|
|
|
|
|
cc-compat.el, info-edit.el, meese.el, otodo-mode.el, rcompile.el,
|
|
|
|
|
sup-mouse.el, terminal.el, vi.el, vip.el, ws-mode.el, and yow.el.
|
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* Lisp Changes in Emacs 31.1
|
|
|
|
|
|
2024-10-01 23:03:08 +00:00
|
|
|
|
+++
|
|
|
|
|
** The 'defcustom' :local keyword can now be 'permanent-only'.
|
|
|
|
|
This means that the variable's 'permanent-local' property is set to t,
|
|
|
|
|
without marking it as automatically buffer-local.
|
|
|
|
|
|
2024-09-28 20:04:19 +00:00
|
|
|
|
---
|
2024-09-29 14:24:42 +00:00
|
|
|
|
** The obsolete face attribute ':reverse-video' has been removed.
|
2024-09-28 20:04:19 +00:00
|
|
|
|
Use ':inverse-video' instead.
|
|
|
|
|
|
2024-07-09 11:16:43 +00:00
|
|
|
|
+++
|
2024-07-24 21:52:34 +00:00
|
|
|
|
** Support interactive D-Bus authorization.
|
2024-07-09 11:16:43 +00:00
|
|
|
|
A new ':authorizable t' parameter has been added to 'dbus-call-method'
|
|
|
|
|
and 'dbus-call-method-asynchronously' to allow the user to interactively
|
2024-07-24 21:52:34 +00:00
|
|
|
|
authorize the invoked D-Bus method (for example via polkit).
|
2024-07-09 11:16:43 +00:00
|
|
|
|
|
2024-07-24 21:48:05 +00:00
|
|
|
|
** The customization group 'wp' has been removed.
|
|
|
|
|
It has been obsolete since Emacs 26.1. Use the group 'text' instead.
|
|
|
|
|
|
2024-07-27 05:33:17 +00:00
|
|
|
|
** Tree-sitter changes
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** Indirect buffers can have their own parser list.
|
|
|
|
|
Before, indirect buffers share their base buffer’s parser list and
|
|
|
|
|
parsers. Now they can have their own parser list.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New variable 'treesit-language-remap-alist'.
|
|
|
|
|
This variable allows a user to remap one language into another, such
|
|
|
|
|
that creating a parser for language A actually creates a parser for
|
|
|
|
|
language B. By extension, any font-lock rules or indentation rules for
|
|
|
|
|
language A will be applied to language B instead.
|
|
|
|
|
|
|
|
|
|
This is useful for reusing font-lock rules and indentation rules of
|
|
|
|
|
language A for language B, when language B is a strict superset of
|
|
|
|
|
language A.
|
2024-07-28 03:48:38 +00:00
|
|
|
|
|
2024-09-16 06:32:51 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New accessor functions for each setting in 'treesit-font-lock-settings'.
|
|
|
|
|
Now users can access a setting's query, feature, enable flag, and
|
|
|
|
|
override flag by 'treesit-font-lock-setting-query',
|
|
|
|
|
'treesit-font-lock-setting-feature', 'treesit-font-lock-setting-enable',
|
|
|
|
|
and 'treesit-font-lock-setting-override'.
|
|
|
|
|
|
2024-07-28 03:48:38 +00:00
|
|
|
|
+++
|
|
|
|
|
** New optional BUFFER argument for 'string-pixel-width'.
|
|
|
|
|
If supplied, 'string-pixel-width' will use any face remappings from
|
|
|
|
|
BUFFER when computing the string's width.
|
|
|
|
|
|
2024-08-22 14:56:11 +00:00
|
|
|
|
---
|
2024-09-11 15:42:24 +00:00
|
|
|
|
** New macro 'with-work-buffer'.
|
|
|
|
|
This macro is similar to the already existing macro 'with-temp-buffer',
|
2024-08-22 14:56:11 +00:00
|
|
|
|
except that it does not allocate a new temporary buffer on each call,
|
|
|
|
|
but tries to reuse those previously allocated (up to a number defined by
|
2024-09-11 15:42:24 +00:00
|
|
|
|
the new variable 'work-buffer-limit', which defaults to 10).
|
2024-08-22 14:56:11 +00:00
|
|
|
|
|
2024-08-14 11:57:16 +00:00
|
|
|
|
+++
|
2024-08-15 09:13:38 +00:00
|
|
|
|
** 'date-to-time' now defaults to local time.
|
2024-08-14 11:57:16 +00:00
|
|
|
|
The function now assumes local time instead of Universal Time when
|
|
|
|
|
its argument lacks explicit time zone information. This has been the
|
|
|
|
|
de-facto behavior since Emacs 24 although documentation said otherwise.
|
|
|
|
|
Also, the fallback on 'timezone-make-date-arpa-standard' has been
|
|
|
|
|
removed because its supported date styles can be handled by
|
2024-08-15 07:28:48 +00:00
|
|
|
|
'parse-time-string'. To restore the previously documented behavior,
|
|
|
|
|
specify "+0000" or "Z" as the time zone in the argument.
|
2024-08-14 11:57:16 +00:00
|
|
|
|
|
2024-08-25 07:24:35 +00:00
|
|
|
|
---
|
|
|
|
|
** The 'min-width' property is now supported for overlays as well.
|
|
|
|
|
This 'display' property was previously supported only as text property.
|
|
|
|
|
Now overlays can also have this property, with the same effect for the
|
|
|
|
|
text "covered" by the overlay.
|
|
|
|
|
|
2024-08-29 09:02:08 +00:00
|
|
|
|
+++
|
|
|
|
|
** New macro 'cond*'.
|
|
|
|
|
The new macro 'cond*' is an alternative to 'pcase'. Like 'pcase', it
|
2024-08-31 07:05:01 +00:00
|
|
|
|
can be used to define several clauses, each one with its own condition;
|
2024-08-29 09:02:08 +00:00
|
|
|
|
the first clause that matches will cause its body to be evaluated.
|
|
|
|
|
'cond*' uses syntax that is different from that of 'pcase', which some
|
2024-08-29 13:52:16 +00:00
|
|
|
|
users might find less cryptic. See the Info node "(elisp) cond* Macro"
|
2024-08-29 09:02:08 +00:00
|
|
|
|
for details.
|
|
|
|
|
|
2024-10-02 07:23:06 +00:00
|
|
|
|
---
|
|
|
|
|
** New function 'shell-command-do-open'.
|
|
|
|
|
This lets a Lisp program access the core functionality of the
|
|
|
|
|
'dired-do-open' command. It opens a file or files using an external
|
|
|
|
|
program, choosing the program according to the operating system's
|
|
|
|
|
conventions.
|
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
* Changes in Emacs 31.1 on Non-Free Operating Systems
|
|
|
|
|
|
2024-07-01 10:15:51 +00:00
|
|
|
|
---
|
|
|
|
|
** Process execution has been optimized on Android.
|
2024-07-25 11:38:27 +00:00
|
|
|
|
The run-time performance of subprocesses on recent Android releases,
|
|
|
|
|
where a userspace executable loader is required, has been optimized on
|
2024-08-15 11:59:43 +00:00
|
|
|
|
systems featuring Linux 3.5.0 and above.
|
2024-07-01 10:15:51 +00:00
|
|
|
|
|
2024-08-31 10:38:45 +00:00
|
|
|
|
---
|
2024-09-11 15:42:24 +00:00
|
|
|
|
** 'NSSpeechRecognitionUsageDescription' now included in "Info.plist" (macOS).
|
2024-08-31 10:38:45 +00:00
|
|
|
|
Should Emacs (or any built-in shell) invoke a process using macOS speech
|
|
|
|
|
recognition APIs, the relevant permission dialog is now displayed, thus
|
|
|
|
|
allowing Emacs users access to speech recognition utilities.
|
|
|
|
|
|
|
|
|
|
Note: Accepting this permission allows the use of system APIs, which may
|
|
|
|
|
send user data to Apple’s speech recognition servers.
|
|
|
|
|
|
2024-09-14 11:02:51 +00:00
|
|
|
|
---
|
|
|
|
|
** Emacs on MS-Windows now supports GUI dialogs and message boxes better.
|
|
|
|
|
In particular, it is now possible to show text with embedded newlines in
|
2024-09-14 12:42:15 +00:00
|
|
|
|
a dialog popped by 'message-box'. This is supported on Windows Vista
|
|
|
|
|
and later versions.
|
2024-09-14 11:02:51 +00:00
|
|
|
|
|
2024-06-23 10:56:48 +00:00
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
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:
|