GNU Emacs NEWS -- history of user-visible changes.
-Copyright (C) 2021-2023 Free Software Foundation, Inc.
+Copyright (C) 2022-2023 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'.
** X selection requests are now handled much faster and asynchronously.
This means it should be less necessary to disable the likes of
-`select-active-regions' when Emacs is running over a slow network
+'select-active-regions' when Emacs is running over a slow network
connection.
** Emacs now updates invisible frames that are made visible by a compositor.
If an invisible or an iconified frame is shown to the user by the
compositing manager, Emacs will now redisplay such a frame even though
-'frame-visible-' returns nil or 'icon' for it. This can happen, for
+'frame-visible-p' returns nil or 'icon' for it. This can happen, for
example, as part of preview for iconified frames.
+++
\f
* Editing Changes in Emacs 30.1
-** New helper 'transpose-sexps-function'
-Emacs now can set this defvar to customize the behavior of the
+** New helper variable 'transpose-sexps-function'.
+Emacs now can set this variable to customize the behavior of the
'transpose-sexps' function.
-** New function 'treesit-transpose-sexps'
+** New function 'treesit-transpose-sexps'.
treesit.el now unconditionally sets 'transpose-sexps-function' for all
Tree-sitter modes. This functionality utilizes the new
'transpose-sexps-function'.
\f
* Changes in Specialized Modes and Packages in Emacs 30.1
---
-** Variable order and truncation can now be configured in gdb-many-window mode.
-The new variable 'gdb-locals-table-row-config' allows users to
+** Variable order and truncation can now be configured in 'gdb-many-windows'.
+The new user option 'gdb-locals-table-row-config' allows users to
configure the order and max length of various properties in the local
variables buffer when using 'gdb-many-windows'.
-By default, this variable is set to write the properties in the order:
+By default, this user option is set to write the properties in the order:
name, type and value, where the name and type are truncated to 20
characters, and the value is truncated according to the value of
'gdb-locals-value-limit'.
-If you want to get back the old behavior, set
-'gdb-locals-table-row-config' to the value
+If you want to get back the old behavior, set the user option to the value
- ((type . 0)(name . 0)(value . ,gdb-locals-value-limit)).
+ (setopt gdb-locals-table-row-config
+ `((type . 0) (name . 0) (value . ,gdb-locals-value-limit)))
** VC
switches for shortlogs, such as the one produced by 'C-x v L'.
'vc-git-log-switches' is no longer used for shortlogs.
-** bs
+** Buffer Selection
---
*** New user option 'bs-default-action-list'.
+++
*** 'eshell-read-aliases-list' is now an interactive command.
-After manually editing 'eshell-aliases-file', you can use
-'M-x eshell-read-aliases-list' to load the edited aliases.
+After manually editing 'eshell-aliases-file', you can use this command
+to load the edited aliases.
** Prog Mode
+
+++
-*** New command 'prog-fill-reindent-defun'
+*** New command 'prog-fill-reindent-defun'.
This command either fills a single paragraph in a defun, such as a
-doc-string, or a comment, or (re)indents the surrounding defun if
+docstring, or a comment, or (re)indents the surrounding defun if
point is not in a comment or a string. It is by default bound to
'M-q' in 'prog-mode' and all its descendants.
+
\f
* New Modes and Packages in Emacs 30.1
+
---
-** The highly accessible Modus themes collection has six items
+** The highly accessible Modus themes collection has six items.
The 'modus-operandi' and 'modus-vivendi' are the main themes that have
been part of Emacs since version 28. The former is light, the latter
dark. In addition to these, we now have 'modus-operandi-tinted' and
'modus-vivendi-tinted' for easier legibility, as well as
'modus-operandi-deuteranopia' and 'modus-vivendi-deuteranopia' to
cover the needs of users with red-green color deficiency. The Info
-manual of the themes describes the details and showcases all their
-customization options.
+manual "(modus-themes) Top" describes the details and showcases all
+their customization options.
\f
* Incompatible Lisp Changes in Emacs 30.1
+** User option 'tramp-completion-reread-directory-timeout' has been removed.
+This user option has been obsoleted in Emacs 27, use
+'remote-file-name-inhibit-cache' instead.
+
\f
* Lisp Changes in Emacs 30.1
'unless', 'ignore-error' and 'with-suppressed-warnings' in addition to
the existing warnings for 'let' and 'let*'. Example:
- (when (> x 2))
+ (when (> x 2))
This warning can be suppressed using 'with-suppressed-warnings' with
the warning name 'empty-body'.
The compiler now warns about quoted condition (error) names
in 'condition-case' and 'ignore-error'. Example:
- (condition-case nil
- (/ x y)
- ('arith-error "division by zero"))
+ (condition-case nil
+ (/ x y)
+ ('arith-error "division by zero"))
Quoting them adds the error name 'quote' to those handled or ignored
respectively, which was probably not intended.
string, cons, vector, record, function, large integer or float as this
may not match any value at all. Example:
- (eq x "hello")
+ (eq x "hello")
Only literals for symbols and small integers (fixnums), including
characters, are guaranteed to have a consistent (unique) identity.
This warning can be suppressed using 'with-suppressed-warnings' with
the warning name 'suspicious'.
-
\f
* Changes in Emacs 30.1 on Non-Free Operating Systems
(unless (file-directory-p dir)
(tramp-error v 'file-error "Couldn't make directory %s" dir))))
-;; This is not used anymore.
-(defun tramp-smb-handle-make-directory-internal (directory)
- "Like `make-directory-internal' for Tramp files."
- (declare (obsolete nil "29.1"))
- (setq directory (directory-file-name (expand-file-name directory)))
- (unless (file-name-absolute-p directory)
- (setq directory (expand-file-name directory default-directory)))
- (with-parsed-tramp-file-name directory nil
- (when (file-directory-p (file-name-directory directory))
- (tramp-smb-send-command
- v (if (tramp-smb-get-cifs-capabilities v)
- (format "posix_mkdir %s %o"
- (tramp-smb-shell-quote-localname v) (default-file-modes))
- (format "mkdir %s" (tramp-smb-shell-quote-localname v))))
- ;; We must also flush the cache of the directory, because
- ;; `file-attributes' reads the values from there.
- (tramp-flush-file-properties v localname))
- (unless (file-directory-p directory)
- (tramp-error v 'file-error "Couldn't make directory %s" directory))))
-
(defun tramp-smb-handle-make-symbolic-link
(target linkname &optional ok-if-already-exists)
"Like `make-symbolic-link' for Tramp files.
(defcustom tramp-default-user nil
"Default user to use for transferring files.
It is nil by default; otherwise settings in configuration files like
-\"~/.ssh/config\" would be overwritten. Also see `tramp-default-user-alist'.
-
-This variable is regarded as obsolete, and will be removed soon."
+\"~/.ssh/config\" would be overwritten. Also see `tramp-default-user-alist'."
:type '(choice (const nil) string))
;;;###tramp-autoload
:version "26.1"
:type '(repeat string))
-(defcustom tramp-completion-reread-directory-timeout 10
- "Defines seconds since last remote command before rereading a directory.
-A remote directory might have changed its contents. In order to
-make it visible during file name completion in the minibuffer,
-Tramp flushes its cache and rereads the directory contents when
-more than `tramp-completion-reread-directory-timeout' seconds
-have been gone since last remote command execution. A value of t
-would require an immediate reread during filename completion, nil
-means to use always cached values for the directory contents."
- :type '(choice (const nil) (const t) integer))
-(make-obsolete-variable
- 'tramp-completion-reread-directory-timeout
- 'remote-file-name-inhibit-cache "27.2")
-
;;; Internal Variables:
(defvar tramp-current-connection nil