diff options
| author | Stefan Kangas | 2025-01-26 21:37:56 +0100 |
|---|---|---|
| committer | Stefan Kangas | 2025-01-26 22:45:13 +0100 |
| commit | 74dcfe155a9cd42fe4d352f031297169bf3abb41 (patch) | |
| tree | 851ac735948979e99892323363ad2cba60baf564 | |
| parent | a87c382cabaec41f8901c858d4abd52305622b9e (diff) | |
| download | emacs-74dcfe155a9cd42fe4d352f031297169bf3abb41.tar.gz emacs-74dcfe155a9cd42fe4d352f031297169bf3abb41.zip | |
; * etc/NEWS: Remove temporary documentation markers.
| -rw-r--r-- | etc/NEWS | 437 |
1 files changed, 0 insertions, 437 deletions
| @@ -15,16 +15,9 @@ in older Emacs versions. | |||
| 15 | You can narrow news to a specific version by calling 'view-emacs-news' | 15 | You can narrow news to a specific version by calling 'view-emacs-news' |
| 16 | with a prefix argument or by typing 'C-u C-h C-n'. | 16 | with a prefix argument or by typing 'C-u C-h C-n'. |
| 17 | 17 | ||
| 18 | Temporary note: | ||
| 19 | +++ indicates that all relevant manuals in doc/ have been updated. | ||
| 20 | --- means no change in the manuals is needed. | ||
| 21 | When you add a new item, use the appropriate mark if you are sure it | ||
| 22 | applies, and please also update docstrings as needed. | ||
| 23 | |||
| 24 | 18 | ||
| 25 | * Installation Changes in Emacs 30.1 | 19 | * Installation Changes in Emacs 30.1 |
| 26 | 20 | ||
| 27 | --- | ||
| 28 | ** Native compilation is now enabled by default. | 21 | ** Native compilation is now enabled by default. |
| 29 | 'configure' will enable the Emacs Lisp native compiler, so long as | 22 | 'configure' will enable the Emacs Lisp native compiler, so long as |
| 30 | libgccjit is present and functional on the system. To disable native | 23 | libgccjit is present and functional on the system. To disable native |
| @@ -32,20 +25,17 @@ compilation, configure Emacs with the option: | |||
| 32 | 25 | ||
| 33 | ./configure --with-native-compilation=no | 26 | ./configure --with-native-compilation=no |
| 34 | 27 | ||
| 35 | +++ | ||
| 36 | ** Emacs has been ported to the Android operating system. | 28 | ** Emacs has been ported to the Android operating system. |
| 37 | This requires Emacs to be compiled on another computer. The Android | 29 | This requires Emacs to be compiled on another computer. The Android |
| 38 | NDK, SDK, and a suitable Java compiler must also be installed. | 30 | NDK, SDK, and a suitable Java compiler must also be installed. |
| 39 | 31 | ||
| 40 | See the file "java/INSTALL" for more details. | 32 | See the file "java/INSTALL" for more details. |
| 41 | 33 | ||
| 42 | --- | ||
| 43 | ** Native JSON support is now always available; libjansson is no longer used. | 34 | ** Native JSON support is now always available; libjansson is no longer used. |
| 44 | No external library is required. The '--with-json' configure option has | 35 | No external library is required. The '--with-json' configure option has |
| 45 | been removed. 'json-available-p' now always returns non-nil and is only | 36 | been removed. 'json-available-p' now always returns non-nil and is only |
| 46 | kept for compatibility. | 37 | kept for compatibility. |
| 47 | 38 | ||
| 48 | --- | ||
| 49 | ** Emacs now defaults to the ossaudio library for sound on NetBSD and OpenBSD. | 39 | ** Emacs now defaults to the ossaudio library for sound on NetBSD and OpenBSD. |
| 50 | Previously, configure used ALSA libraries if installed on the system | 40 | Previously, configure used ALSA libraries if installed on the system |
| 51 | when configured '--with-sound=yes' (which is the default), with fallback | 41 | when configured '--with-sound=yes' (which is the default), with fallback |
| @@ -55,7 +45,6 @@ and to resolve potential incompatibilities between GNU/Linux and *BSD | |||
| 55 | versions of ALSA. Use '--with-sound=alsa' to build with ALSA on these | 45 | versions of ALSA. Use '--with-sound=alsa' to build with ALSA on these |
| 56 | operating systems instead. | 46 | operating systems instead. |
| 57 | 47 | ||
| 58 | --- | ||
| 59 | ** New configuration option '--disable-gc-mark-trace'. | 48 | ** New configuration option '--disable-gc-mark-trace'. |
| 60 | This disables the GC mark trace buffer for about 5% better garbage | 49 | This disables the GC mark trace buffer for about 5% better garbage |
| 61 | collection performance. Doing so may make it more difficult for Emacs | 50 | collection performance. Doing so may make it more difficult for Emacs |
| @@ -65,7 +54,6 @@ why the mark trace buffer is enabled by default. | |||
| 65 | 54 | ||
| 66 | * Startup Changes in Emacs 30.1 | 55 | * Startup Changes in Emacs 30.1 |
| 67 | 56 | ||
| 68 | --- | ||
| 69 | ** On GNU/Linux, Emacs is now the default application for 'org-protocol'. | 57 | ** On GNU/Linux, Emacs is now the default application for 'org-protocol'. |
| 70 | Org mode provides a way to quickly capture bookmarks, notes, and links | 58 | Org mode provides a way to quickly capture bookmarks, notes, and links |
| 71 | using 'emacsclient': | 59 | using 'emacsclient': |
| @@ -79,7 +67,6 @@ arranges for Emacs to be the default application for the 'org-protocol' | |||
| 79 | URI scheme. See the Org mode manual, Info node "(org) Protocols" for | 67 | URI scheme. See the Org mode manual, Info node "(org) Protocols" for |
| 80 | more details. | 68 | more details. |
| 81 | 69 | ||
| 82 | +++ | ||
| 83 | ** New variable lets Lisp code read emacsclient arguments. | 70 | ** New variable lets Lisp code read emacsclient arguments. |
| 84 | When '--eval' is passed to emacsclient and Emacs is evaluating each | 71 | When '--eval' is passed to emacsclient and Emacs is evaluating each |
| 85 | argument, the new variable 'server-eval-args-left' is set to those | 72 | argument, the new variable 'server-eval-args-left' is set to those |
| @@ -92,7 +79,6 @@ escaping (to protect them from the shell). | |||
| 92 | 79 | ||
| 93 | * Incompatible Changes in Emacs 30.1 | 80 | * Incompatible Changes in Emacs 30.1 |
| 94 | 81 | ||
| 95 | --- | ||
| 96 | ** Tree-Sitter modes are now declared as submodes of the non-TS modes. | 82 | ** Tree-Sitter modes are now declared as submodes of the non-TS modes. |
| 97 | In order to help the use of those Tree-Sitter modes, they are now | 83 | In order to help the use of those Tree-Sitter modes, they are now |
| 98 | declared to have the corresponding non-Tree-Sitter mode as an | 84 | declared to have the corresponding non-Tree-Sitter mode as an |
| @@ -133,7 +119,6 @@ variants of major modes are available, because that variable overrides | |||
| 133 | the remapping Emacs might decide to perform as result of loading Lisp | 119 | the remapping Emacs might decide to perform as result of loading Lisp |
| 134 | files and features. | 120 | files and features. |
| 135 | 121 | ||
| 136 | --- | ||
| 137 | ** Mouse wheel events should now always be 'wheel-up/down/left/right'. | 122 | ** Mouse wheel events should now always be 'wheel-up/down/left/right'. |
| 138 | At those places where the old 'mouse-4/5/6/7' events could still occur | 123 | At those places where the old 'mouse-4/5/6/7' events could still occur |
| 139 | (i.e., X11 input in the absence of XInput2, and 'xterm-mouse-mode'), | 124 | (i.e., X11 input in the absence of XInput2, and 'xterm-mouse-mode'), |
| @@ -143,7 +128,6 @@ The old variables 'mouse-wheel-up-event', 'mouse-wheel-down-event', | |||
| 143 | 'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby | 128 | 'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby |
| 144 | obsolete. | 129 | obsolete. |
| 145 | 130 | ||
| 146 | +++ | ||
| 147 | ** 'completion-auto-help' now affects 'icomplete-in-buffer'. | 131 | ** 'completion-auto-help' now affects 'icomplete-in-buffer'. |
| 148 | Previously, 'completion-auto-help' mostly affected only minibuffer | 132 | Previously, 'completion-auto-help' mostly affected only minibuffer |
| 149 | completion. Now, if 'completion-auto-help' has the value 'lazy', then | 133 | completion. Now, if 'completion-auto-help' has the value 'lazy', then |
| @@ -153,7 +137,6 @@ after the 'completion-at-point' command has been invoked twice, and if | |||
| 153 | completely suppressed. Thus, if you use 'icomplete-in-buffer', ensure | 137 | completely suppressed. Thus, if you use 'icomplete-in-buffer', ensure |
| 154 | 'completion-auto-help' is not customized to 'lazy' or nil. | 138 | 'completion-auto-help' is not customized to 'lazy' or nil. |
| 155 | 139 | ||
| 156 | +++ | ||
| 157 | ** The "*Completions*" buffer now always accompanies 'icomplete-in-buffer'. | 140 | ** The "*Completions*" buffer now always accompanies 'icomplete-in-buffer'. |
| 158 | Previously, it was not consistent whether the "*Completions*" buffer would | 141 | Previously, it was not consistent whether the "*Completions*" buffer would |
| 159 | appear when using 'icomplete-in-buffer'. Now the "*Completions*" buffer | 142 | appear when using 'icomplete-in-buffer'. Now the "*Completions*" buffer |
| @@ -164,27 +147,23 @@ to your init file: | |||
| 164 | 147 | ||
| 165 | (advice-add 'completion-at-point :after #'minibuffer-hide-completions) | 148 | (advice-add 'completion-at-point :after #'minibuffer-hide-completions) |
| 166 | 149 | ||
| 167 | --- | ||
| 168 | ** The default process filter was rewritten in native code. | 150 | ** The default process filter was rewritten in native code. |
| 169 | The round-trip through the Lisp function | 151 | The round-trip through the Lisp function |
| 170 | 'internal-default-process-filter' is skipped when the process filter is | 152 | 'internal-default-process-filter' is skipped when the process filter is |
| 171 | the default one. It is reimplemented in native code, reducing GC churn. | 153 | the default one. It is reimplemented in native code, reducing GC churn. |
| 172 | To undo this change, set 'fast-read-process-output' to nil. | 154 | To undo this change, set 'fast-read-process-output' to nil. |
| 173 | 155 | ||
| 174 | +++ | ||
| 175 | ** Network Security Manager now warns about 3DES by default. | 156 | ** Network Security Manager now warns about 3DES by default. |
| 176 | This cypher is no longer recommended owing to a major vulnerability | 157 | This cypher is no longer recommended owing to a major vulnerability |
| 177 | disclosed in 2016, and its small 112 bit key size. Emacs now warns | 158 | disclosed in 2016, and its small 112 bit key size. Emacs now warns |
| 178 | about its use also when 'network-security-level' is set to 'medium' | 159 | about its use also when 'network-security-level' is set to 'medium' |
| 179 | (the default). See 'network-security-protocol-checks'. | 160 | (the default). See 'network-security-protocol-checks'. |
| 180 | 161 | ||
| 181 | --- | ||
| 182 | ** Network Security Manager now warns about <2048 bits in DH key exchange. | 162 | ** Network Security Manager now warns about <2048 bits in DH key exchange. |
| 183 | Emacs used to warn for ephemeral Diffie-Hellman (DHE) key exchanges with | 163 | Emacs used to warn for ephemeral Diffie-Hellman (DHE) key exchanges with |
| 184 | prime numbers smaller than 1024 bits. Since more servers now support | 164 | prime numbers smaller than 1024 bits. Since more servers now support |
| 185 | it, this number has been bumped to 2048 bits. | 165 | it, this number has been bumped to 2048 bits. |
| 186 | 166 | ||
| 187 | +++ | ||
| 188 | ** URL now never sends user email addresses in HTTP requests. | 167 | ** URL now never sends user email addresses in HTTP requests. |
| 189 | Emacs never sent email addresses by default, but it used to be | 168 | Emacs never sent email addresses by default, but it used to be |
| 190 | possible to customize 'url-privacy-level' so that the user's email | 169 | possible to customize 'url-privacy-level' so that the user's email |
| @@ -196,7 +175,6 @@ removed, as it was considered more dangerous than useful. RFC 9110 | |||
| 196 | To send an email address in the header of individual HTTP requests, | 175 | To send an email address in the header of individual HTTP requests, |
| 197 | see the variable 'url-request-extra-headers'. | 176 | see the variable 'url-request-extra-headers'. |
| 198 | 177 | ||
| 199 | --- | ||
| 200 | ** 'pixel-scroll-precision-mode' sets 'make-cursor-line-fully-visible'. | 178 | ** 'pixel-scroll-precision-mode' sets 'make-cursor-line-fully-visible'. |
| 201 | 'pixel-scroll-precision-mode' sets 'make-cursor-line-fully-visible' to a | 179 | 'pixel-scroll-precision-mode' sets 'make-cursor-line-fully-visible' to a |
| 202 | nil value globally, since the usual requirement of the Emacs display to | 180 | nil value globally, since the usual requirement of the Emacs display to |
| @@ -206,7 +184,6 @@ expectations. | |||
| 206 | 184 | ||
| 207 | * Changes in Emacs 30.1 | 185 | * Changes in Emacs 30.1 |
| 208 | 186 | ||
| 209 | +++ | ||
| 210 | ** New user option 'trusted-content' to allow potentially dangerous features. | 187 | ** New user option 'trusted-content' to allow potentially dangerous features. |
| 211 | This option lists those files and directories whose content Emacs should | 188 | This option lists those files and directories whose content Emacs should |
| 212 | consider as sufficiently trusted to run any part of the code contained | 189 | consider as sufficiently trusted to run any part of the code contained |
| @@ -215,14 +192,11 @@ For example, Flymake's backend for Emacs Lisp consults this option | |||
| 215 | and disables itself with an "untrusted content" warning if the file | 192 | and disables itself with an "untrusted content" warning if the file |
| 216 | is not listed. | 193 | is not listed. |
| 217 | 194 | ||
| 218 | --- | ||
| 219 | ** Emacs now supports Unicode Standard version 15.1. | 195 | ** Emacs now supports Unicode Standard version 15.1. |
| 220 | 196 | ||
| 221 | +++ | ||
| 222 | ** Emacs now comes with Org v9.7. | 197 | ** Emacs now comes with Org v9.7. |
| 223 | See the file "etc/ORG-NEWS" for user-visible changes in Org. | 198 | See the file "etc/ORG-NEWS" for user-visible changes in Org. |
| 224 | 199 | ||
| 225 | +++ | ||
| 226 | ** Improved support for touchscreen devices. | 200 | ** Improved support for touchscreen devices. |
| 227 | On systems that understand them (at present X, Android, PGTK, and | 201 | On systems that understand them (at present X, Android, PGTK, and |
| 228 | MS-Windows), many touch screen gestures are now implemented and | 202 | MS-Windows), many touch screen gestures are now implemented and |
| @@ -231,7 +205,6 @@ bar buttons and opening menus has been added. Countless packages, such | |||
| 231 | as Dired and Custom, have been adjusted to better understand touch | 205 | as Dired and Custom, have been adjusted to better understand touch |
| 232 | screen input. | 206 | screen input. |
| 233 | 207 | ||
| 234 | +++ | ||
| 235 | ** Support for styled underline face attributes. | 208 | ** Support for styled underline face attributes. |
| 236 | These are implemented as new values of the 'style' attribute in a face | 209 | These are implemented as new values of the 'style' attribute in a face |
| 237 | underline specification, 'double-line', 'dots', and 'dashes', and are | 210 | underline specification, 'double-line', 'dots', and 'dashes', and are |
| @@ -240,36 +213,30 @@ database entry defines the 'Su' or 'Smulx' capability, Emacs will also | |||
| 240 | emit the prescribed escape sequence to render faces with such styles on | 213 | emit the prescribed escape sequence to render faces with such styles on |
| 241 | TTY frames. | 214 | TTY frames. |
| 242 | 215 | ||
| 243 | --- | ||
| 244 | ** Support for underline colors on TTY frames. | 216 | ** Support for underline colors on TTY frames. |
| 245 | Colors specified in the underline face will now also be displayed on TTY | 217 | Colors specified in the underline face will now also be displayed on TTY |
| 246 | frames on terminals that support the 'Su' or 'Smulx' capabilities. | 218 | frames on terminals that support the 'Su' or 'Smulx' capabilities. |
| 247 | 219 | ||
| 248 | +++ | ||
| 249 | ** Modeline elements can now be right-aligned. | 220 | ** Modeline elements can now be right-aligned. |
| 250 | Anything following the symbol 'mode-line-format-right-align' in | 221 | Anything following the symbol 'mode-line-format-right-align' in |
| 251 | 'mode-line-format' will be right-aligned. Exactly where it is | 222 | 'mode-line-format' will be right-aligned. Exactly where it is |
| 252 | right-aligned to is controlled by the new user option | 223 | right-aligned to is controlled by the new user option |
| 253 | 'mode-line-right-align-edge'. | 224 | 'mode-line-right-align-edge'. |
| 254 | 225 | ||
| 255 | --- | ||
| 256 | ** X selection requests are now handled much faster and asynchronously. | 226 | ** X selection requests are now handled much faster and asynchronously. |
| 257 | This means it should be less necessary to disable the likes of | 227 | This means it should be less necessary to disable the likes of |
| 258 | 'select-active-regions' when Emacs is running over a slow network | 228 | 'select-active-regions' when Emacs is running over a slow network |
| 259 | connection. | 229 | connection. |
| 260 | 230 | ||
| 261 | --- | ||
| 262 | ** Emacs now updates invisible frames that are made visible by a compositor. | 231 | ** Emacs now updates invisible frames that are made visible by a compositor. |
| 263 | If an invisible or an iconified frame is shown to the user by the | 232 | If an invisible or an iconified frame is shown to the user by the |
| 264 | compositing manager, Emacs will now redisplay such a frame even though | 233 | compositing manager, Emacs will now redisplay such a frame even though |
| 265 | 'frame-visible-p' returns nil or 'icon' for it. This can happen, for | 234 | 'frame-visible-p' returns nil or 'icon' for it. This can happen, for |
| 266 | example, as part of preview for iconified frames. | 235 | example, as part of preview for iconified frames. |
| 267 | 236 | ||
| 268 | +++ | ||
| 269 | ** Most file notification backends detect unmounting of a watched filesystem. | 237 | ** Most file notification backends detect unmounting of a watched filesystem. |
| 270 | The only exception is w32notify. | 238 | The only exception is w32notify. |
| 271 | 239 | ||
| 272 | +++ | ||
| 273 | ** The ':map' property of images is now recomputed when image is transformed. | 240 | ** The ':map' property of images is now recomputed when image is transformed. |
| 274 | Images with clickable maps now work as expected after you run commands | 241 | Images with clickable maps now work as expected after you run commands |
| 275 | such as 'image-increase-size', 'image-decrease-size', 'image-rotate', | 242 | such as 'image-increase-size', 'image-decrease-size', 'image-rotate', |
| @@ -279,13 +246,11 @@ from recomputing image maps. | |||
| 279 | 246 | ||
| 280 | ** Minibuffer and Completions | 247 | ** Minibuffer and Completions |
| 281 | 248 | ||
| 282 | +++ | ||
| 283 | *** New commands 'previous-line-completion' and 'next-line-completion'. | 249 | *** New commands 'previous-line-completion' and 'next-line-completion'. |
| 284 | Bound to '<up>' and '<down>' arrow keys, respectively, they navigate | 250 | Bound to '<up>' and '<down>' arrow keys, respectively, they navigate |
| 285 | the "*Completions*" buffer vertically by lines, wrapping at the | 251 | the "*Completions*" buffer vertically by lines, wrapping at the |
| 286 | top/bottom when 'completion-auto-wrap' is non-nil. | 252 | top/bottom when 'completion-auto-wrap' is non-nil. |
| 287 | 253 | ||
| 288 | +++ | ||
| 289 | *** New user option 'minibuffer-visible-completions'. | 254 | *** New user option 'minibuffer-visible-completions'. |
| 290 | When customized to non-nil, you can use arrow keys in the minibuffer | 255 | When customized to non-nil, you can use arrow keys in the minibuffer |
| 291 | to navigate the completions displayed in the "*Completions*" window. | 256 | to navigate the completions displayed in the "*Completions*" window. |
| @@ -294,7 +259,6 @@ completions window. When the completions window is not visible, | |||
| 294 | then all these keys have their usual meaning in the minibuffer. | 259 | then all these keys have their usual meaning in the minibuffer. |
| 295 | This option is supported for in-buffer completion as well. | 260 | This option is supported for in-buffer completion as well. |
| 296 | 261 | ||
| 297 | --- | ||
| 298 | *** Selected completion candidates are deselected on typing. | 262 | *** Selected completion candidates are deselected on typing. |
| 299 | When you type at the minibuffer prompt, the current completion | 263 | When you type at the minibuffer prompt, the current completion |
| 300 | candidate will be un-highlighted, and point in the "*Completions*" window | 264 | candidate will be un-highlighted, and point in the "*Completions*" window |
| @@ -306,13 +270,11 @@ the minibuffer contents instead. This deselection behavior can be | |||
| 306 | controlled with the new user option 'completion-auto-deselect', which | 270 | controlled with the new user option 'completion-auto-deselect', which |
| 307 | is t by default. | 271 | is t by default. |
| 308 | 272 | ||
| 309 | +++ | ||
| 310 | *** New value 'historical' for user option 'completions-sort'. | 273 | *** New value 'historical' for user option 'completions-sort'. |
| 311 | When 'completions-sort' is set to 'historical', completion candidates | 274 | When 'completions-sort' is set to 'historical', completion candidates |
| 312 | will be first sorted alphabetically, and then re-sorted by their order | 275 | will be first sorted alphabetically, and then re-sorted by their order |
| 313 | in the minibuffer history, with more recent candidates appearing first. | 276 | in the minibuffer history, with more recent candidates appearing first. |
| 314 | 277 | ||
| 315 | +++ | ||
| 316 | *** 'completion-category-overrides' supports more metadata. | 278 | *** 'completion-category-overrides' supports more metadata. |
| 317 | The new supported completion properties are 'cycle-sort-function', | 279 | The new supported completion properties are 'cycle-sort-function', |
| 318 | 'display-sort-function', 'annotation-function', 'affixation-function', | 280 | 'display-sort-function', 'annotation-function', 'affixation-function', |
| @@ -320,21 +282,18 @@ and 'group-function'. You can now customize them for any category in | |||
| 320 | 'completion-category-overrides' that will override the properties | 282 | 'completion-category-overrides' that will override the properties |
| 321 | defined in completion metadata. | 283 | defined in completion metadata. |
| 322 | 284 | ||
| 323 | +++ | ||
| 324 | *** 'completion-extra-properties' supports more metadata. | 285 | *** 'completion-extra-properties' supports more metadata. |
| 325 | The new supported completion properties are 'category', | 286 | The new supported completion properties are 'category', |
| 326 | 'group-function', 'display-sort-function', and 'cycle-sort-function'. | 287 | 'group-function', 'display-sort-function', and 'cycle-sort-function'. |
| 327 | 288 | ||
| 328 | ** Windows | 289 | ** Windows |
| 329 | 290 | ||
| 330 | +++ | ||
| 331 | *** New command 'toggle-window-dedicated'. | 291 | *** New command 'toggle-window-dedicated'. |
| 332 | This makes it easy to interactively mark a specific window as | 292 | This makes it easy to interactively mark a specific window as |
| 333 | dedicated, so it won't be reused by 'display-buffer'. This can be | 293 | dedicated, so it won't be reused by 'display-buffer'. This can be |
| 334 | useful for complicated window setups. It is bound to 'C-x w d' | 294 | useful for complicated window setups. It is bound to 'C-x w d' |
| 335 | globally. | 295 | globally. |
| 336 | 296 | ||
| 337 | +++ | ||
| 338 | *** "d" in the mode line now indicates that the window is dedicated. | 297 | *** "d" in the mode line now indicates that the window is dedicated. |
| 339 | Windows have always been able to be dedicated to a specific buffer; | 298 | Windows have always been able to be dedicated to a specific buffer; |
| 340 | see 'window-dedicated-p'. Now the mode line indicates the dedicated | 299 | see 'window-dedicated-p'. Now the mode line indicates the dedicated |
| @@ -343,7 +302,6 @@ dedicated and "D" if the window is strongly dedicated. This indicator | |||
| 343 | appears before the buffer name, and after the buffer modification and | 302 | appears before the buffer name, and after the buffer modification and |
| 344 | remote buffer indicators (usually "---" together). | 303 | remote buffer indicators (usually "---" together). |
| 345 | 304 | ||
| 346 | +++ | ||
| 347 | *** New action alist entry 'some-window' for 'display-buffer'. | 305 | *** New action alist entry 'some-window' for 'display-buffer'. |
| 348 | It specifies which window 'display-buffer-use-some-window' should prefer. | 306 | It specifies which window 'display-buffer-use-some-window' should prefer. |
| 349 | For example, when 'display-buffer-base-action' is customized to | 307 | For example, when 'display-buffer-base-action' is customized to |
| @@ -351,25 +309,21 @@ For example, when 'display-buffer-base-action' is customized to | |||
| 351 | in the same most recently used window from consecutive calls of | 309 | in the same most recently used window from consecutive calls of |
| 352 | 'display-buffer' (in a configuration with more than two windows). | 310 | 'display-buffer' (in a configuration with more than two windows). |
| 353 | 311 | ||
| 354 | +++ | ||
| 355 | *** New action alist entry 'category' for 'display-buffer'. | 312 | *** New action alist entry 'category' for 'display-buffer'. |
| 356 | If the caller of 'display-buffer' passes '(category . symbol)' | 313 | If the caller of 'display-buffer' passes '(category . symbol)' |
| 357 | in its 'action' argument, you can match the displayed buffer | 314 | in its 'action' argument, you can match the displayed buffer |
| 358 | by adding '(category . symbol)' to the condition part of | 315 | by adding '(category . symbol)' to the condition part of |
| 359 | 'display-buffer-alist' entries. | 316 | 'display-buffer-alist' entries. |
| 360 | 317 | ||
| 361 | +++ | ||
| 362 | *** New action alist entry 'post-command-select-window' for 'display-buffer'. | 318 | *** New action alist entry 'post-command-select-window' for 'display-buffer'. |
| 363 | It specifies whether the window of the displayed buffer should be | 319 | It specifies whether the window of the displayed buffer should be |
| 364 | selected or deselected at the end of executing the current command. | 320 | selected or deselected at the end of executing the current command. |
| 365 | 321 | ||
| 366 | +++ | ||
| 367 | *** New variable 'window-restore-killed-buffer-windows'. | 322 | *** New variable 'window-restore-killed-buffer-windows'. |
| 368 | It specifies how 'set-window-configuration' and 'window-state-put' | 323 | It specifies how 'set-window-configuration' and 'window-state-put' |
| 369 | should proceed with windows whose buffer was killed after the | 324 | should proceed with windows whose buffer was killed after the |
| 370 | corresponding configuration or state was recorded. | 325 | corresponding configuration or state was recorded. |
| 371 | 326 | ||
| 372 | --- | ||
| 373 | *** New variable 'window-point-context-set-function'. | 327 | *** New variable 'window-point-context-set-function'. |
| 374 | It can be used to set a context for window point in all windows by | 328 | It can be used to set a context for window point in all windows by |
| 375 | 'window-point-context-set' before calling 'current-window-configuration' | 329 | 'window-point-context-set' before calling 'current-window-configuration' |
| @@ -379,14 +333,12 @@ and 'window-state-get'. Then later another new variable | |||
| 379 | 'window-state-put' to restore positions of window points | 333 | 'window-state-put' to restore positions of window points |
| 380 | according to the context stored in a window parameter. | 334 | according to the context stored in a window parameter. |
| 381 | 335 | ||
| 382 | +++ | ||
| 383 | *** New functions 'set-window-cursor-type' and 'window-cursor-type'. | 336 | *** New functions 'set-window-cursor-type' and 'window-cursor-type'. |
| 384 | 'set-window-cursor-type' sets a per-window cursor type, and | 337 | 'set-window-cursor-type' sets a per-window cursor type, and |
| 385 | 'window-cursor-type' queries this setting for a given window. Windows | 338 | 'window-cursor-type' queries this setting for a given window. Windows |
| 386 | are always created with a 'window-cursor-type' of t, which means to | 339 | are always created with a 'window-cursor-type' of t, which means to |
| 387 | consult the variable 'cursor-type' as before. | 340 | consult the variable 'cursor-type' as before. |
| 388 | 341 | ||
| 389 | --- | ||
| 390 | *** The user option 'display-comint-buffer-action' is now obsolete. | 342 | *** The user option 'display-comint-buffer-action' is now obsolete. |
| 391 | You can use a '(category . comint)' condition in 'display-buffer-alist' | 343 | You can use a '(category . comint)' condition in 'display-buffer-alist' |
| 392 | to match buffers displayed by comint-related commands. Another | 344 | to match buffers displayed by comint-related commands. Another |
| @@ -395,60 +347,50 @@ for which you can use '(category . tex-shell)'. | |||
| 395 | 347 | ||
| 396 | ** Tool bars | 348 | ** Tool bars |
| 397 | 349 | ||
| 398 | +++ | ||
| 399 | *** Tool bars can now be placed on the bottom on more systems. | 350 | *** Tool bars can now be placed on the bottom on more systems. |
| 400 | The 'tool-bar-position' frame parameter can be set to 'bottom' on all | 351 | The 'tool-bar-position' frame parameter can be set to 'bottom' on all |
| 401 | window systems other than macOS and GNUstep (Nextstep). | 352 | window systems other than macOS and GNUstep (Nextstep). |
| 402 | 353 | ||
| 403 | +++ | ||
| 404 | *** New global minor mode 'modifier-bar-mode'. | 354 | *** New global minor mode 'modifier-bar-mode'. |
| 405 | When this minor mode is enabled, the tool bar displays buttons | 355 | When this minor mode is enabled, the tool bar displays buttons |
| 406 | representing modifier keys. Clicking on these buttons applies the | 356 | representing modifier keys. Clicking on these buttons applies the |
| 407 | corresponding modifiers to the next input event. | 357 | corresponding modifiers to the next input event. |
| 408 | 358 | ||
| 409 | +++ | ||
| 410 | *** New user option 'tool-bar-always-show-default'. | 359 | *** New user option 'tool-bar-always-show-default'. |
| 411 | When non-nil, the tool bar at the top of a frame does not show buffer | 360 | When non-nil, the tool bar at the top of a frame does not show buffer |
| 412 | local customization of the tool bar. The default value is nil. | 361 | local customization of the tool bar. The default value is nil. |
| 413 | 362 | ||
| 414 | ** Tab Bars and Tab Lines | 363 | ** Tab Bars and Tab Lines |
| 415 | 364 | ||
| 416 | --- | ||
| 417 | *** New user option 'tab-bar-select-restore-context'. | 365 | *** New user option 'tab-bar-select-restore-context'. |
| 418 | It uses 'window-point-context-set' to save contexts where | 366 | It uses 'window-point-context-set' to save contexts where |
| 419 | window points were located before switching away from the tab, | 367 | window points were located before switching away from the tab, |
| 420 | and 'window-point-context-use' to restore positions of window | 368 | and 'window-point-context-use' to restore positions of window |
| 421 | points after switching back to that tab. | 369 | points after switching back to that tab. |
| 422 | 370 | ||
| 423 | --- | ||
| 424 | *** New user option 'tab-bar-select-restore-windows'. | 371 | *** New user option 'tab-bar-select-restore-windows'. |
| 425 | It defines what to do with windows whose buffer was killed since the tab | 372 | It defines what to do with windows whose buffer was killed since the tab |
| 426 | was last selected. By default it displays a placeholder buffer | 373 | was last selected. By default it displays a placeholder buffer |
| 427 | with the name " *Old buffer <name>*" that provides information about | 374 | with the name " *Old buffer <name>*" that provides information about |
| 428 | the name of the killed buffer that was displayed in that window. | 375 | the name of the killed buffer that was displayed in that window. |
| 429 | 376 | ||
| 430 | --- | ||
| 431 | *** New user option 'tab-bar-tab-name-format-functions'. | 377 | *** New user option 'tab-bar-tab-name-format-functions'. |
| 432 | It can be used to add, remove and reorder functions that change the | 378 | It can be used to add, remove and reorder functions that change the |
| 433 | appearance of every tab on the tab bar. | 379 | appearance of every tab on the tab bar. |
| 434 | 380 | ||
| 435 | --- | ||
| 436 | *** New hook 'tab-bar-tab-post-select-functions'. | 381 | *** New hook 'tab-bar-tab-post-select-functions'. |
| 437 | 382 | ||
| 438 | --- | ||
| 439 | *** New keymap 'tab-bar-mode-map'. | 383 | *** New keymap 'tab-bar-mode-map'. |
| 440 | By default it contains a keybinding 'C-TAB' to switch tabs, but only | 384 | By default it contains a keybinding 'C-TAB' to switch tabs, but only |
| 441 | when 'C-TAB' is not bound globally. You can unbind it if it conflicts | 385 | when 'C-TAB' is not bound globally. You can unbind it if it conflicts |
| 442 | with 'C-TAB' in other modes. | 386 | with 'C-TAB' in other modes. |
| 443 | 387 | ||
| 444 | --- | ||
| 445 | *** New keymap 'tab-line-mode-map'. | 388 | *** New keymap 'tab-line-mode-map'. |
| 446 | By default it contains keybindings for switching tabs: 'C-x <left>', | 389 | By default it contains keybindings for switching tabs: 'C-x <left>', |
| 447 | 'C-x <right>', 'C-x C-<left>', 'C-x C-<right>'. You can unbind them if | 390 | 'C-x <right>', 'C-x C-<left>', 'C-x C-<right>'. You can unbind them if |
| 448 | you want to use these keys for the commands 'previous-buffer' and | 391 | you want to use these keys for the commands 'previous-buffer' and |
| 449 | 'next-buffer'. | 392 | 'next-buffer'. |
| 450 | 393 | ||
| 451 | --- | ||
| 452 | *** Default list of tab-line tabs is changed to support a fixed order. | 394 | *** Default list of tab-line tabs is changed to support a fixed order. |
| 453 | This means that 'tab-line-tabs-fixed-window-buffers', the new default | 395 | This means that 'tab-line-tabs-fixed-window-buffers', the new default |
| 454 | tabs function, is like the previous 'tab-line-tabs-window-buffers' where | 396 | tabs function, is like the previous 'tab-line-tabs-window-buffers' where |
| @@ -458,29 +400,24 @@ original order of buffers on the tab line, even after switching between | |||
| 458 | these buffers. You can drag the tabs and release at a new position | 400 | these buffers. You can drag the tabs and release at a new position |
| 459 | to manually reorder the buffers on the tab line. | 401 | to manually reorder the buffers on the tab line. |
| 460 | 402 | ||
| 461 | --- | ||
| 462 | *** New user option 'tab-line-tabs-buffer-group-function'. | 403 | *** New user option 'tab-line-tabs-buffer-group-function'. |
| 463 | It provides two choices to group tab buffers by major mode and by | 404 | It provides two choices to group tab buffers by major mode and by |
| 464 | project name. | 405 | project name. |
| 465 | 406 | ||
| 466 | --- | ||
| 467 | *** Buffers on tab-line group tabs are now sorted alphabetically. | 407 | *** Buffers on tab-line group tabs are now sorted alphabetically. |
| 468 | This will keep the fixed order of tabs, even after switching between | 408 | This will keep the fixed order of tabs, even after switching between |
| 469 | them. | 409 | them. |
| 470 | 410 | ||
| 471 | ** Help | 411 | ** Help |
| 472 | 412 | ||
| 473 | +++ | ||
| 474 | *** New command 'help-find-source'. | 413 | *** New command 'help-find-source'. |
| 475 | Switch to a buffer visiting the source of what is being described in | 414 | Switch to a buffer visiting the source of what is being described in |
| 476 | "*Help*". It is bound to 'C-h 4 s' globally. | 415 | "*Help*". It is bound to 'C-h 4 s' globally. |
| 477 | 416 | ||
| 478 | --- | ||
| 479 | *** New user option 'describe-bindings-outline-rules'. | 417 | *** New user option 'describe-bindings-outline-rules'. |
| 480 | This user option controls outline visibility in the output buffer of | 418 | This user option controls outline visibility in the output buffer of |
| 481 | 'describe-bindings' when 'describe-bindings-outline' is non-nil. | 419 | 'describe-bindings' when 'describe-bindings-outline' is non-nil. |
| 482 | 420 | ||
| 483 | --- | ||
| 484 | *** 'describe-function' shows the function's inferred type when available. | 421 | *** 'describe-function' shows the function's inferred type when available. |
| 485 | For native compiled Lisp functions, 'describe-function' prints (after | 422 | For native compiled Lisp functions, 'describe-function' prints (after |
| 486 | the signature) the automatically inferred function type as well. If the | 423 | the signature) the automatically inferred function type as well. If the |
| @@ -489,18 +426,15 @@ function's type was explicitly declared (via the 'declare' form's | |||
| 489 | controlled by the new user option 'help-display-function-type', which is | 426 | controlled by the new user option 'help-display-function-type', which is |
| 490 | by default t; customize to nil to disable function type display. | 427 | by default t; customize to nil to disable function type display. |
| 491 | 428 | ||
| 492 | --- | ||
| 493 | *** 'describe-function' now shows the type of the function object. | 429 | *** 'describe-function' now shows the type of the function object. |
| 494 | The text used to say things like "car is a built-in function" whereas it | 430 | The text used to say things like "car is a built-in function" whereas it |
| 495 | now says "car is a primitive-function" where "primitive-function" is the | 431 | now says "car is a primitive-function" where "primitive-function" is the |
| 496 | name of the symbol returned by 'cl-type-of'. You can click on those | 432 | name of the symbol returned by 'cl-type-of'. You can click on those |
| 497 | words to get information about that type. | 433 | words to get information about that type. |
| 498 | 434 | ||
| 499 | --- | ||
| 500 | *** 'C-h m' ('describe-mode') uses outlining by default. | 435 | *** 'C-h m' ('describe-mode') uses outlining by default. |
| 501 | Set 'describe-mode-outline' to nil to get back the old behavior. | 436 | Set 'describe-mode-outline' to nil to get back the old behavior. |
| 502 | 437 | ||
| 503 | --- | ||
| 504 | *** 'C-h k' ('describe-key') shows Unicode name. | 438 | *** 'C-h k' ('describe-key') shows Unicode name. |
| 505 | For keybindings which produce single characters via translation or input | 439 | For keybindings which produce single characters via translation or input |
| 506 | methods, 'C-h k' now shows the Unicode name of the produced character in | 440 | methods, 'C-h k' now shows the Unicode name of the produced character in |
| @@ -510,7 +444,6 @@ addition to the character itself, e.g. | |||
| 510 | 444 | ||
| 511 | € 'EURO SIGN' (translated from C-x 8 E) | 445 | € 'EURO SIGN' (translated from C-x 8 E) |
| 512 | 446 | ||
| 513 | --- | ||
| 514 | *** 'C-h b' ('describe-bindings') shows Unicode names. | 447 | *** 'C-h b' ('describe-bindings') shows Unicode names. |
| 515 | For keybindings which produce single characters via translation (such as | 448 | For keybindings which produce single characters via translation (such as |
| 516 | those using the 'C-x 8' or 'A-' prefix, or 'dead-acute', 'dead-grave', | 449 | those using the 'C-x 8' or 'A-' prefix, or 'dead-acute', 'dead-grave', |
| @@ -522,54 +455,42 @@ itself, i.e. | |||
| 522 | 455 | ||
| 523 | and so on. | 456 | and so on. |
| 524 | 457 | ||
| 525 | +++ | ||
| 526 | *** Multi-character key echo now ends with a suggestion to use Help. | 458 | *** Multi-character key echo now ends with a suggestion to use Help. |
| 527 | Customize 'echo-keystrokes-help' to nil to prevent that. | 459 | Customize 'echo-keystrokes-help' to nil to prevent that. |
| 528 | 460 | ||
| 529 | ** Customize | 461 | ** Customize |
| 530 | 462 | ||
| 531 | +++ | ||
| 532 | *** New command 'customize-dirlocals'. | 463 | *** New command 'customize-dirlocals'. |
| 533 | This command pops up a buffer to edit the settings in ".dir-locals.el". | 464 | This command pops up a buffer to edit the settings in ".dir-locals.el". |
| 534 | 465 | ||
| 535 | --- | ||
| 536 | *** New command 'customize-toggle-option'. | 466 | *** New command 'customize-toggle-option'. |
| 537 | This command can toggle boolean options for the duration of a session. | 467 | This command can toggle boolean options for the duration of a session. |
| 538 | 468 | ||
| 539 | +++ | ||
| 540 | *** New prefix argument for modifying directory-local variables. | 469 | *** New prefix argument for modifying directory-local variables. |
| 541 | The commands 'add-dir-local-variable', 'delete-dir-local-variable' and | 470 | The commands 'add-dir-local-variable', 'delete-dir-local-variable' and |
| 542 | 'copy-file-locals-to-dir-locals' now take an optional prefix argument, | 471 | 'copy-file-locals-to-dir-locals' now take an optional prefix argument, |
| 543 | to enter the file name where you want to modify directory-local | 472 | to enter the file name where you want to modify directory-local |
| 544 | variables. | 473 | variables. |
| 545 | 474 | ||
| 546 | +++ | ||
| 547 | *** New user option 'safe-local-variable-directories'. | 475 | *** New user option 'safe-local-variable-directories'. |
| 548 | This user option names directories in which Emacs will treat all | 476 | This user option names directories in which Emacs will treat all |
| 549 | directory-local variables as safe. | 477 | directory-local variables as safe. |
| 550 | 478 | ||
| 551 | +++ | ||
| 552 | ** CL Print | 479 | ** CL Print |
| 553 | 480 | ||
| 554 | +++ | ||
| 555 | *** There is a new chapter in the CL manual documenting cl-print.el. | 481 | *** There is a new chapter in the CL manual documenting cl-print.el. |
| 556 | See the Info node "(cl) Printing". | 482 | See the Info node "(cl) Printing". |
| 557 | 483 | ||
| 558 | +++ | ||
| 559 | *** You can expand the "..." truncation everywhere. | 484 | *** You can expand the "..." truncation everywhere. |
| 560 | The code that allowed "..." to be expanded in the "*Backtrace*" buffer | 485 | The code that allowed "..." to be expanded in the "*Backtrace*" buffer |
| 561 | should now work anywhere the data is generated by 'cl-print'. | 486 | should now work anywhere the data is generated by 'cl-print'. |
| 562 | 487 | ||
| 563 | +++ | ||
| 564 | *** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'. | 488 | *** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'. |
| 565 | 489 | ||
| 566 | +++ | ||
| 567 | *** hash-tables' contents can be expanded via the ellipsis. | 490 | *** hash-tables' contents can be expanded via the ellipsis. |
| 568 | 491 | ||
| 569 | +++ | ||
| 570 | *** Modes can control the expansion via 'cl-print-expand-ellipsis-function'. | 492 | *** Modes can control the expansion via 'cl-print-expand-ellipsis-function'. |
| 571 | 493 | ||
| 572 | +++ | ||
| 573 | *** New setting 'raw' for 'cl-print-compiled'. | 494 | *** New setting 'raw' for 'cl-print-compiled'. |
| 574 | This setting causes byte-compiled functions to be printed in full by | 495 | This setting causes byte-compiled functions to be printed in full by |
| 575 | 'prin1'. A button on this output can be activated to disassemble the | 496 | 'prin1'. A button on this output can be activated to disassemble the |
| @@ -577,28 +498,23 @@ function. | |||
| 577 | 498 | ||
| 578 | ** Miscellaneous | 499 | ** Miscellaneous |
| 579 | 500 | ||
| 580 | +++ | ||
| 581 | *** New command 'kill-matching-buffers-no-ask'. | 501 | *** New command 'kill-matching-buffers-no-ask'. |
| 582 | This works like 'kill-matching-buffers', but without asking for | 502 | This works like 'kill-matching-buffers', but without asking for |
| 583 | confirmation. | 503 | confirmation. |
| 584 | 504 | ||
| 585 | +++ | ||
| 586 | *** 'recover-file' can show diffs between auto save file and current file. | 505 | *** 'recover-file' can show diffs between auto save file and current file. |
| 587 | When answering the prompt with "diff" or "=", it now shows the diffs | 506 | When answering the prompt with "diff" or "=", it now shows the diffs |
| 588 | between the auto save file and the current file. | 507 | between the auto save file and the current file. |
| 589 | 508 | ||
| 590 | +++ | ||
| 591 | *** 'read-passwd' can toggle the visibility of passwords. | 509 | *** 'read-passwd' can toggle the visibility of passwords. |
| 592 | Use 'TAB' in the minibuffer to show or hide the password. | 510 | Use 'TAB' in the minibuffer to show or hide the password. |
| 593 | Alternatively, click the new show-password icon on the mode-line with | 511 | Alternatively, click the new show-password icon on the mode-line with |
| 594 | 'mouse-1' to toggle the visibility of the password. | 512 | 'mouse-1' to toggle the visibility of the password. |
| 595 | 513 | ||
| 596 | +++ | ||
| 597 | *** 'advice-remove' is now an interactive command. | 514 | *** 'advice-remove' is now an interactive command. |
| 598 | When called interactively, 'advice-remove' now prompts for an advised | 515 | When called interactively, 'advice-remove' now prompts for an advised |
| 599 | function to the advice to remove. | 516 | function to the advice to remove. |
| 600 | 517 | ||
| 601 | --- | ||
| 602 | *** New user option 'uniquify-dirname-transform'. | 518 | *** New user option 'uniquify-dirname-transform'. |
| 603 | This can be used to customize how buffer names are uniquified, by | 519 | This can be used to customize how buffer names are uniquified, by |
| 604 | making arbitrary transforms on the buffer's directory name (whose | 520 | making arbitrary transforms on the buffer's directory name (whose |
| @@ -607,70 +523,57 @@ can use this to distinguish between buffers visiting files with the | |||
| 607 | same base name that belong to different projects by using the provided | 523 | same base name that belong to different projects by using the provided |
| 608 | transform function 'project-uniquify-dirname-transform'. | 524 | transform function 'project-uniquify-dirname-transform'. |
| 609 | 525 | ||
| 610 | +++ | ||
| 611 | *** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'. | 526 | *** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'. |
| 612 | When non-nil, this option suppresses moving remote files to the local | 527 | When non-nil, this option suppresses moving remote files to the local |
| 613 | trash when deleting. Default is nil. | 528 | trash when deleting. Default is nil. |
| 614 | 529 | ||
| 615 | --- | ||
| 616 | *** New user option 'remote-file-name-inhibit-auto-save'. | 530 | *** New user option 'remote-file-name-inhibit-auto-save'. |
| 617 | If this user option is non-nil, 'auto-save-mode' will not auto-save | 531 | If this user option is non-nil, 'auto-save-mode' will not auto-save |
| 618 | remote buffers. The default is nil. | 532 | remote buffers. The default is nil. |
| 619 | 533 | ||
| 620 | +++ | ||
| 621 | *** New user option 'remote-file-name-access-timeout'. | 534 | *** New user option 'remote-file-name-access-timeout'. |
| 622 | If a positive number, this option limits the call of 'access-file' | 535 | If a positive number, this option limits the call of 'access-file' |
| 623 | for remote files to that number of seconds. Default is nil. | 536 | for remote files to that number of seconds. Default is nil. |
| 624 | 537 | ||
| 625 | +++ | ||
| 626 | *** New user option 'yes-or-no-prompt'. | 538 | *** New user option 'yes-or-no-prompt'. |
| 627 | This allows the user to customize the prompt that is appended by | 539 | This allows the user to customize the prompt that is appended by |
| 628 | 'yes-or-no-p' when asking questions. The default value is | 540 | 'yes-or-no-p' when asking questions. The default value is |
| 629 | "(yes or no) ". | 541 | "(yes or no) ". |
| 630 | 542 | ||
| 631 | --- | ||
| 632 | *** New user option 'menu-bar-close-window'. | 543 | *** New user option 'menu-bar-close-window'. |
| 633 | When non-nil, selecting "Close" from the "File" menu or clicking | 544 | When non-nil, selecting "Close" from the "File" menu or clicking |
| 634 | "Close" in the tool bar will result in the current window being | 545 | "Close" in the tool bar will result in the current window being |
| 635 | deleted, if possible. The default is nil, and these gestures kill the | 546 | deleted, if possible. The default is nil, and these gestures kill the |
| 636 | buffer shown in the current window, but don't delete the window. | 547 | buffer shown in the current window, but don't delete the window. |
| 637 | 548 | ||
| 638 | --- | ||
| 639 | *** New face 'display-time-date-and-time'. | 549 | *** New face 'display-time-date-and-time'. |
| 640 | This is used for displaying the time and date components of | 550 | This is used for displaying the time and date components of |
| 641 | 'display-time-mode'. | 551 | 'display-time-mode'. |
| 642 | 552 | ||
| 643 | --- | ||
| 644 | *** New face 'appt-notification' for 'appt-display-mode-line'. | 553 | *** New face 'appt-notification' for 'appt-display-mode-line'. |
| 645 | It can be used to customize the look of the appointment notification | 554 | It can be used to customize the look of the appointment notification |
| 646 | displayed on the mode line when 'appt-display-mode-line' is non-nil. | 555 | displayed on the mode line when 'appt-display-mode-line' is non-nil. |
| 647 | 556 | ||
| 648 | --- | ||
| 649 | *** New icon images for general use. | 557 | *** New icon images for general use. |
| 650 | Several symbolic icons have been added to "etc/images/symbols", | 558 | Several symbolic icons have been added to "etc/images/symbols", |
| 651 | including plus, minus, check-mark, star, etc. | 559 | including plus, minus, check-mark, star, etc. |
| 652 | 560 | ||
| 653 | --- | ||
| 654 | *** Emacs now recognizes shebang lines that pass '-S'/'--split-string' to 'env'. | 561 | *** Emacs now recognizes shebang lines that pass '-S'/'--split-string' to 'env'. |
| 655 | When visiting a script that invokes 'env -S INTERPRETER ARGS...' in | 562 | When visiting a script that invokes 'env -S INTERPRETER ARGS...' in |
| 656 | its shebang line, Emacs will now skip over 'env -S' and deduce the | 563 | its shebang line, Emacs will now skip over 'env -S' and deduce the |
| 657 | major mode based on the interpreter after 'env -S'. | 564 | major mode based on the interpreter after 'env -S'. |
| 658 | 565 | ||
| 659 | +++ | ||
| 660 | *** 'insert-directory-program' is now a user option. | 566 | *** 'insert-directory-program' is now a user option. |
| 661 | On *BSD and macOS systems, this user option now defaults to the "gls" | 567 | On *BSD and macOS systems, this user option now defaults to the "gls" |
| 662 | executable, if it exists. This should remove the need to change its | 568 | executable, if it exists. This should remove the need to change its |
| 663 | value when installing GNU coreutils using something like ports or | 569 | value when installing GNU coreutils using something like ports or |
| 664 | Homebrew. | 570 | Homebrew. |
| 665 | 571 | ||
| 666 | +++ | ||
| 667 | *** 'write-region-inhibit-fsync' now defaults to t in interactive mode. | 572 | *** 'write-region-inhibit-fsync' now defaults to t in interactive mode. |
| 668 | This is the default in batch mode since Emacs 24. | 573 | This is the default in batch mode since Emacs 24. |
| 669 | 574 | ||
| 670 | --- | ||
| 671 | *** The default value of 'read-process-output-max' was increased to 65536. | 575 | *** The default value of 'read-process-output-max' was increased to 65536. |
| 672 | 576 | ||
| 673 | +++ | ||
| 674 | *** 'url-gateway-broken-resolution' is now obsolete. | 577 | *** 'url-gateway-broken-resolution' is now obsolete. |
| 675 | This option was intended for use on SunOS 4.x and Ultrix systems, | 578 | This option was intended for use on SunOS 4.x and Ultrix systems, |
| 676 | neither of which have been supported by Emacs since version 23.1. | 579 | neither of which have been supported by Emacs since version 23.1. |
| @@ -680,7 +583,6 @@ The user option 'url-gateway-nslookup-program' and the command | |||
| 680 | 583 | ||
| 681 | * Editing Changes in Emacs 30.1 | 584 | * Editing Changes in Emacs 30.1 |
| 682 | 585 | ||
| 683 | +++ | ||
| 684 | ** New minor mode 'visual-wrap-prefix-mode'. | 586 | ** New minor mode 'visual-wrap-prefix-mode'. |
| 685 | When enabled, continuation lines displayed for a wrapped long line | 587 | When enabled, continuation lines displayed for a wrapped long line |
| 686 | will receive a 'wrap-prefix' automatically computed from the line's | 588 | will receive a 'wrap-prefix' automatically computed from the line's |
| @@ -694,7 +596,6 @@ buffers. | |||
| 694 | (This minor mode is the 'adaptive-wrap' ELPA package renamed and | 596 | (This minor mode is the 'adaptive-wrap' ELPA package renamed and |
| 695 | lightly edited for inclusion in Emacs.) | 597 | lightly edited for inclusion in Emacs.) |
| 696 | 598 | ||
| 697 | +++ | ||
| 698 | ** New global minor mode 'kill-ring-deindent-mode'. | 599 | ** New global minor mode 'kill-ring-deindent-mode'. |
| 699 | When enabled, text being saved to the kill ring will be de-indented by | 600 | When enabled, text being saved to the kill ring will be de-indented by |
| 700 | the column number at its start. For example, saving the entire | 601 | the column number at its start. For example, saving the entire |
| @@ -716,7 +617,6 @@ long_function_with_several_arguments (argument_1_compute (), | |||
| 716 | This omits the two columns of extra indentation that would otherwise be | 617 | This omits the two columns of extra indentation that would otherwise be |
| 717 | copied from the second and third lines and saved to the kill ring. | 618 | copied from the second and third lines and saved to the kill ring. |
| 718 | 619 | ||
| 719 | --- | ||
| 720 | ** New command 'replace-regexp-as-diff'. | 620 | ** New command 'replace-regexp-as-diff'. |
| 721 | It reads a regexp to search for and a string to replace with, then | 621 | It reads a regexp to search for and a string to replace with, then |
| 722 | displays a buffer with replacements as diffs. After reviewing the | 622 | displays a buffer with replacements as diffs. After reviewing the |
| @@ -726,7 +626,6 @@ a patch to the current file buffer. There are also new commands | |||
| 726 | in a list of specified files, and 'dired-do-replace-regexp-as-diff' | 626 | in a list of specified files, and 'dired-do-replace-regexp-as-diff' |
| 727 | that shows as diffs replacements in the marked files in Dired. | 627 | that shows as diffs replacements in the marked files in Dired. |
| 728 | 628 | ||
| 729 | +++ | ||
| 730 | ** New mode of prompting for register names and showing preview. | 629 | ** New mode of prompting for register names and showing preview. |
| 731 | The new user option 'register-use-preview' can be customized to the | 630 | The new user option 'register-use-preview' can be customized to the |
| 732 | value t or 'insist' to request a different user interface of prompting for | 631 | value t or 'insist' to request a different user interface of prompting for |
| @@ -739,7 +638,6 @@ The default value of 'register-use-preview' ('traditional') preserves the | |||
| 739 | behavior of Emacs 29 and before. See the Info node "(emacs) Registers" | 638 | behavior of Emacs 29 and before. See the Info node "(emacs) Registers" |
| 740 | for more details about the new UI and its variants. | 639 | for more details about the new UI and its variants. |
| 741 | 640 | ||
| 742 | +++ | ||
| 743 | ** New advanced macro counter commands. | 641 | ** New advanced macro counter commands. |
| 744 | New commands have been added to implement advanced macro counter | 642 | New commands have been added to implement advanced macro counter |
| 745 | functions. | 643 | functions. |
| @@ -755,7 +653,6 @@ The commands 'C-x C-k C-q =', 'C-x C-k C-q <', and 'C-x C-k C-q >' | |||
| 755 | compare the macro counter with an optional prefix and terminate the | 653 | compare the macro counter with an optional prefix and terminate the |
| 756 | macro if the comparison succeeds. | 654 | macro if the comparison succeeds. |
| 757 | 655 | ||
| 758 | +++ | ||
| 759 | ** New mode 'kmacro-menu-mode' and new command 'list-keyboard-macros'. | 656 | ** New mode 'kmacro-menu-mode' and new command 'list-keyboard-macros'. |
| 760 | The new command 'list-keyboard-macros' is the keyboard-macro version | 657 | The new command 'list-keyboard-macros' is the keyboard-macro version |
| 761 | of commands like 'list-buffers' and 'list-processes', creating a listing | 658 | of commands like 'list-buffers' and 'list-processes', creating a listing |
| @@ -764,19 +661,16 @@ of the currently existing keyboards macros using the new mode | |||
| 764 | duplicating them, deleting them, and editing their counters, formats, | 661 | duplicating them, deleting them, and editing their counters, formats, |
| 765 | and keys. | 662 | and keys. |
| 766 | 663 | ||
| 767 | --- | ||
| 768 | ** On X, Emacs now supports input methods which perform "string conversion". | 664 | ** On X, Emacs now supports input methods which perform "string conversion". |
| 769 | This means an input method can now ask Emacs to delete text | 665 | This means an input method can now ask Emacs to delete text |
| 770 | surrounding point and replace it with something else, as well as query | 666 | surrounding point and replace it with something else, as well as query |
| 771 | Emacs for surrounding text. If your input method allows you to "undo" | 667 | Emacs for surrounding text. If your input method allows you to "undo" |
| 772 | mistaken compositions, this will now work as well. | 668 | mistaken compositions, this will now work as well. |
| 773 | 669 | ||
| 774 | --- | ||
| 775 | ** New user option 'duplicate-region-final-position'. | 670 | ** New user option 'duplicate-region-final-position'. |
| 776 | It controls the placement of point and the region after duplicating a | 671 | It controls the placement of point and the region after duplicating a |
| 777 | region with 'duplicate-dwim'. | 672 | region with 'duplicate-dwim'. |
| 778 | 673 | ||
| 779 | +++ | ||
| 780 | ** New user option 'mouse-prefer-closest-glyph'. | 674 | ** New user option 'mouse-prefer-closest-glyph'. |
| 781 | When enabled, clicking or dragging with the mouse will put the point | 675 | When enabled, clicking or dragging with the mouse will put the point |
| 782 | or start the drag in front of the buffer position corresponding to the | 676 | or start the drag in front of the buffer position corresponding to the |
| @@ -787,14 +681,12 @@ whereas if the mouse pointer is in the left half of a glyph, point | |||
| 787 | will be put in front the buffer position corresponding to that glyph. | 681 | will be put in front the buffer position corresponding to that glyph. |
| 788 | By default this is disabled. | 682 | By default this is disabled. |
| 789 | 683 | ||
| 790 | --- | ||
| 791 | ** New pre-defined values for 'electric-quote-chars'. | 684 | ** New pre-defined values for 'electric-quote-chars'. |
| 792 | The available customization options for 'electric-quote-chars' have been | 685 | The available customization options for 'electric-quote-chars' have been |
| 793 | updated with common pairs of quotation characters, including "‘", "’", | 686 | updated with common pairs of quotation characters, including "‘", "’", |
| 794 | "“", "”", "«", "»", "‹", "›", "‚", "„", "「", "」", "『", and "』". | 687 | "“", "”", "«", "»", "‹", "›", "‚", "„", "「", "」", "『", and "』". |
| 795 | The default is unchanged. | 688 | The default is unchanged. |
| 796 | 689 | ||
| 797 | +++ | ||
| 798 | ** 'M-TAB' now invokes 'completion-at-point' in Text mode. | 690 | ** 'M-TAB' now invokes 'completion-at-point' in Text mode. |
| 799 | By default, Text mode no longer binds 'M-TAB' to 'ispell-complete-word'. | 691 | By default, Text mode no longer binds 'M-TAB' to 'ispell-complete-word'. |
| 800 | Instead, this mode arranges for 'completion-at-point', globally bound to | 692 | Instead, this mode arranges for 'completion-at-point', globally bound to |
| @@ -805,7 +697,6 @@ customizing the new user option 'text-mode-ispell-word-completion'. | |||
| 805 | 697 | ||
| 806 | ** Internationalization | 698 | ** Internationalization |
| 807 | 699 | ||
| 808 | --- | ||
| 809 | *** Mode-line mnemonics for some coding-systems have changed. | 700 | *** Mode-line mnemonics for some coding-systems have changed. |
| 810 | The mode-line mnemonic for 'utf-7' is now the lowercase 'u', to be | 701 | The mode-line mnemonic for 'utf-7' is now the lowercase 'u', to be |
| 811 | consistent with the other encodings of this family. | 702 | consistent with the other encodings of this family. |
| @@ -821,7 +712,6 @@ previous behavior of showing 'U' in the mode line for 'koi8-u': | |||
| 821 | 712 | ||
| 822 | (coding-system-put 'koi8-u :mnemonic ?U) | 713 | (coding-system-put 'koi8-u :mnemonic ?U) |
| 823 | 714 | ||
| 824 | --- | ||
| 825 | *** 'vietnamese-tcvn' is now a coding system alias for 'vietnamese-vscii'. | 715 | *** 'vietnamese-tcvn' is now a coding system alias for 'vietnamese-vscii'. |
| 826 | VSCII-1 and TCVN-5712 are different names for the same character | 716 | VSCII-1 and TCVN-5712 are different names for the same character |
| 827 | encoding. Therefore, the duplicate coding system definition has been | 717 | encoding. Therefore, the duplicate coding system definition has been |
| @@ -830,7 +720,6 @@ dropped in favor of an alias. | |||
| 830 | The mode-line mnemonic for 'vietnamese-vscii' and its aliases is the | 720 | The mode-line mnemonic for 'vietnamese-vscii' and its aliases is the |
| 831 | lowercase letter "v". | 721 | lowercase letter "v". |
| 832 | 722 | ||
| 833 | --- | ||
| 834 | *** Users in CJK locales can control width of some non-CJK characters. | 723 | *** Users in CJK locales can control width of some non-CJK characters. |
| 835 | Some characters are considered by Unicode as "ambiguous" with respect | 724 | Some characters are considered by Unicode as "ambiguous" with respect |
| 836 | to their display width: either "full-width" (i.e., taking 2 columns on | 725 | to their display width: either "full-width" (i.e., taking 2 columns on |
| @@ -847,25 +736,20 @@ or narrow (if the variable is customized to the nil value). | |||
| 847 | This setting affects the results of 'string-width' and similar | 736 | This setting affects the results of 'string-width' and similar |
| 848 | functions in CJK locales. | 737 | functions in CJK locales. |
| 849 | 738 | ||
| 850 | --- | ||
| 851 | *** New input methods for the Urdu, Pashto, and Sindhi languages. | 739 | *** New input methods for the Urdu, Pashto, and Sindhi languages. |
| 852 | These languages are spoken in Pakistan and Afghanistan. | 740 | These languages are spoken in Pakistan and Afghanistan. |
| 853 | 741 | ||
| 854 | --- | ||
| 855 | *** New input method "english-colemak". | 742 | *** New input method "english-colemak". |
| 856 | This input method supports the Colemak keyboard layout. | 743 | This input method supports the Colemak keyboard layout. |
| 857 | 744 | ||
| 858 | --- | ||
| 859 | *** Additional 'C-x 8' key translations for "æ" and "Æ". | 745 | *** Additional 'C-x 8' key translations for "æ" and "Æ". |
| 860 | These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E', | 746 | These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E', |
| 861 | respectively, in addition to the existing translations 'C-x 8 / e' and | 747 | respectively, in addition to the existing translations 'C-x 8 / e' and |
| 862 | 'C-x 8 / E'. | 748 | 'C-x 8 / E'. |
| 863 | 749 | ||
| 864 | --- | ||
| 865 | *** New 'C-x 8' key translations for "low" quotes "„", and "‚". | 750 | *** New 'C-x 8' key translations for "low" quotes "„", and "‚". |
| 866 | These can now be entered with 'C-x , "' and 'C-x , ''. | 751 | These can now be entered with 'C-x , "' and 'C-x , ''. |
| 867 | 752 | ||
| 868 | --- | ||
| 869 | *** New German language 'C-x 8' key translations for quotation marks. | 753 | *** New German language 'C-x 8' key translations for quotation marks. |
| 870 | The characters "„", "“", and "”" can now be entered with 'C-x 8 v', | 754 | The characters "„", "“", and "”" can now be entered with 'C-x 8 v', |
| 871 | 'C-x 8 b' and 'C-x 8 n'. The single versions "‚", "‘", and "’" can now | 755 | 'C-x 8 b' and 'C-x 8 n'. The single versions "‚", "‘", and "’" can now |
| @@ -873,7 +757,6 @@ be entered with 'C-x 8 V', 'C-x 8 B' and 'C-x 8 N'. These characters | |||
| 873 | are used for the official German quoting style. Using them requires | 757 | are used for the official German quoting style. Using them requires |
| 874 | activating German language support via 'iso-transl-set-language'. | 758 | activating German language support via 'iso-transl-set-language'. |
| 875 | 759 | ||
| 876 | --- | ||
| 877 | *** "latin-prefix" and "latin-postfix" quotation marks additions. | 760 | *** "latin-prefix" and "latin-postfix" quotation marks additions. |
| 878 | These input methods can now produce single, double and "low" left and | 761 | These input methods can now produce single, double and "low" left and |
| 879 | right quotation marks: | 762 | right quotation marks: |
| @@ -883,20 +766,17 @@ right quotation marks: | |||
| 883 | by using "[", "]", and "," for "left", "right", and "low" respectively | 766 | by using "[", "]", and "," for "left", "right", and "low" respectively |
| 884 | to modify "'" and """. | 767 | to modify "'" and """. |
| 885 | 768 | ||
| 886 | --- | ||
| 887 | *** "latin-prefix" and "latin-postfix" guillemets support. | 769 | *** "latin-prefix" and "latin-postfix" guillemets support. |
| 888 | These input methods can now produce single guillemets "‹" and "›". For | 770 | These input methods can now produce single guillemets "‹" and "›". For |
| 889 | "latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and | 771 | "latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and |
| 890 | ">~". Double guillemets ("«" and "»") were already supported. | 772 | ">~". Double guillemets ("«" and "»") were already supported. |
| 891 | 773 | ||
| 892 | --- | ||
| 893 | *** New French language 'C-x 8' key translations for "‹" and "›". | 774 | *** New French language 'C-x 8' key translations for "‹" and "›". |
| 894 | These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >', | 775 | These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >', |
| 895 | respectively, after activating French language support via | 776 | respectively, after activating French language support via |
| 896 | 'iso-transl-set-language'. Double guillemets were already supported via | 777 | 'iso-transl-set-language'. Double guillemets were already supported via |
| 897 | 'C-x 8 <' and 'C-x 8 >' | 778 | 'C-x 8 <' and 'C-x 8 >' |
| 898 | 779 | ||
| 899 | --- | ||
| 900 | *** Additional 'C-x 8' key translation for Euro "€" currency symbol. | 780 | *** Additional 'C-x 8' key translation for Euro "€" currency symbol. |
| 901 | This can now be entered using 'C-x 8 E' in addition to the existing | 781 | This can now be entered using 'C-x 8 E' in addition to the existing |
| 902 | 'C-x 8 * E' translation. | 782 | 'C-x 8 * E' translation. |
| @@ -906,44 +786,37 @@ This can now be entered using 'C-x 8 E' in addition to the existing | |||
| 906 | 786 | ||
| 907 | ** Outline mode | 787 | ** Outline mode |
| 908 | 788 | ||
| 909 | +++ | ||
| 910 | *** New commands to show/hide outlines by regexp. | 789 | *** New commands to show/hide outlines by regexp. |
| 911 | 'C-c / h' ('outline-hide-by-heading-regexp') asks for a regexp and then | 790 | 'C-c / h' ('outline-hide-by-heading-regexp') asks for a regexp and then |
| 912 | hides the body lines of all outlines whose heading lines match the | 791 | hides the body lines of all outlines whose heading lines match the |
| 913 | regexp. 'C-c / s' ('outline-show-by-heading-regexp') does the inverse: | 792 | regexp. 'C-c / s' ('outline-show-by-heading-regexp') does the inverse: |
| 914 | it shows the bodies of outlines that matched a regexp. | 793 | it shows the bodies of outlines that matched a regexp. |
| 915 | 794 | ||
| 916 | +++ | ||
| 917 | *** 'outline-minor-mode' is supported in tree-sitter major modes. | 795 | *** 'outline-minor-mode' is supported in tree-sitter major modes. |
| 918 | It can be used in all tree-sitter major modes that set either the | 796 | It can be used in all tree-sitter major modes that set either the |
| 919 | variable 'treesit-simple-imenu-settings' or 'treesit-outline-predicate'. | 797 | variable 'treesit-simple-imenu-settings' or 'treesit-outline-predicate'. |
| 920 | 798 | ||
| 921 | ** Info | 799 | ** Info |
| 922 | 800 | ||
| 923 | --- | ||
| 924 | *** New user option 'Info-url-alist'. | 801 | *** New user option 'Info-url-alist'. |
| 925 | This user option associates manual names with URLs. It affects the | 802 | This user option associates manual names with URLs. It affects the |
| 926 | 'Info-goto-node-web' command. By default, associations for all | 803 | 'Info-goto-node-web' command. By default, associations for all |
| 927 | Emacs-included manuals are set. Further associations can be added for | 804 | Emacs-included manuals are set. Further associations can be added for |
| 928 | arbitrary Info manuals. | 805 | arbitrary Info manuals. |
| 929 | 806 | ||
| 930 | --- | ||
| 931 | *** Emacs can now display Info manuals compressed with 'lzip'. | 807 | *** Emacs can now display Info manuals compressed with 'lzip'. |
| 932 | This requires the 'lzip' program to be installed on your system. | 808 | This requires the 'lzip' program to be installed on your system. |
| 933 | 809 | ||
| 934 | ** GUD (Grand Unified Debugger) | 810 | ** GUD (Grand Unified Debugger) |
| 935 | 811 | ||
| 936 | +++ | ||
| 937 | *** New user option 'gud-highlight-current-line'. | 812 | *** New user option 'gud-highlight-current-line'. |
| 938 | When enabled, GUD will visually emphasize the line being executed upon | 813 | When enabled, GUD will visually emphasize the line being executed upon |
| 939 | pauses in the debuggee's execution, such as those occasioned by | 814 | pauses in the debuggee's execution, such as those occasioned by |
| 940 | breakpoints being hit. | 815 | breakpoints being hit. |
| 941 | 816 | ||
| 942 | +++ | ||
| 943 | *** New command 'lldb'. | 817 | *** New command 'lldb'. |
| 944 | Run the LLDB debugger, analogous to the 'gud-gdb' command. | 818 | Run the LLDB debugger, analogous to the 'gud-gdb' command. |
| 945 | 819 | ||
| 946 | --- | ||
| 947 | *** Variable order and truncation can now be configured in 'gdb-many-windows'. | 820 | *** Variable order and truncation can now be configured in 'gdb-many-windows'. |
| 948 | The new user option 'gdb-locals-table-row-config' allows users to | 821 | The new user option 'gdb-locals-table-row-config' allows users to |
| 949 | configure the order and max length of various properties in the local | 822 | configure the order and max length of various properties in the local |
| @@ -959,7 +832,6 @@ If you want to get back the old behavior, set the user option to the value | |||
| 959 | (setopt gdb-locals-table-row-config | 832 | (setopt gdb-locals-table-row-config |
| 960 | `((type . 0) (name . 0) (value . ,gdb-locals-value-limit))) | 833 | `((type . 0) (name . 0) (value . ,gdb-locals-value-limit))) |
| 961 | 834 | ||
| 962 | +++ | ||
| 963 | *** New user option 'gdb-display-io-buffer'. | 835 | *** New user option 'gdb-display-io-buffer'. |
| 964 | If this is nil, command 'gdb' will neither create nor display a separate | 836 | If this is nil, command 'gdb' will neither create nor display a separate |
| 965 | buffer for the I/O of the program being debugged, but will instead | 837 | buffer for the I/O of the program being debugged, but will instead |
| @@ -968,7 +840,6 @@ default is t, to preserve previous behavior. | |||
| 968 | 840 | ||
| 969 | ** Grep | 841 | ** Grep |
| 970 | 842 | ||
| 971 | +++ | ||
| 972 | *** New user option 'grep-use-headings'. | 843 | *** New user option 'grep-use-headings'. |
| 973 | When non-nil, the output of Grep is split into sections, one for each | 844 | When non-nil, the output of Grep is split into sections, one for each |
| 974 | file, instead of having file names prefixed to each line. It is | 845 | file, instead of having file names prefixed to each line. It is |
| @@ -978,13 +849,11 @@ The default is nil. | |||
| 978 | 849 | ||
| 979 | ** Compilation mode | 850 | ** Compilation mode |
| 980 | 851 | ||
| 981 | --- | ||
| 982 | *** The 'omake' matching rule is now disabled by default. | 852 | *** The 'omake' matching rule is now disabled by default. |
| 983 | This is because it partly acts by modifying other rules which may | 853 | This is because it partly acts by modifying other rules which may |
| 984 | occasionally be surprising. It can be re-enabled by adding 'omake' to | 854 | occasionally be surprising. It can be re-enabled by adding 'omake' to |
| 985 | 'compilation-error-regexp-alist'. | 855 | 'compilation-error-regexp-alist'. |
| 986 | 856 | ||
| 987 | --- | ||
| 988 | *** Lua errors and stack traces are now recognized. | 857 | *** Lua errors and stack traces are now recognized. |
| 989 | Compilation mode now recognizes Lua language errors and stack traces. | 858 | Compilation mode now recognizes Lua language errors and stack traces. |
| 990 | Every Lua error is recognized as a compilation error, and every Lua | 859 | Every Lua error is recognized as a compilation error, and every Lua |
| @@ -992,24 +861,20 @@ stack frame is recognized as a compilation info. | |||
| 992 | 861 | ||
| 993 | ** Project | 862 | ** Project |
| 994 | 863 | ||
| 995 | +++ | ||
| 996 | *** New user option 'project-mode-line'. | 864 | *** New user option 'project-mode-line'. |
| 997 | When non-nil, display the name of the current project on the mode | 865 | When non-nil, display the name of the current project on the mode |
| 998 | line. Clicking 'mouse-1' on the project name pops up the project | 866 | line. Clicking 'mouse-1' on the project name pops up the project |
| 999 | menu. The default value is nil. | 867 | menu. The default value is nil. |
| 1000 | 868 | ||
| 1001 | --- | ||
| 1002 | *** New user option 'project-file-history-behavior'. | 869 | *** New user option 'project-file-history-behavior'. |
| 1003 | Customizing it to 'relativize' makes commands like 'project-find-file' | 870 | Customizing it to 'relativize' makes commands like 'project-find-file' |
| 1004 | and 'project-find-dir' display previous history entries relative to | 871 | and 'project-find-dir' display previous history entries relative to |
| 1005 | the current project. | 872 | the current project. |
| 1006 | 873 | ||
| 1007 | --- | ||
| 1008 | *** New user option 'project-key-prompt-style'. | 874 | *** New user option 'project-key-prompt-style'. |
| 1009 | The look of the key prompt in the project switcher has been changed | 875 | The look of the key prompt in the project switcher has been changed |
| 1010 | slightly. To get the previous one, set this option to 'brackets'. | 876 | slightly. To get the previous one, set this option to 'brackets'. |
| 1011 | 877 | ||
| 1012 | --- | ||
| 1013 | *** Function 'project-try-vc' tries harder to find the responsible VCS. | 878 | *** Function 'project-try-vc' tries harder to find the responsible VCS. |
| 1014 | When 'project-vc-extra-root-markers' is non-nil, and causes a | 879 | When 'project-vc-extra-root-markers' is non-nil, and causes a |
| 1015 | subdirectory project to be detected which is not a VCS root, Project now | 880 | subdirectory project to be detected which is not a VCS root, Project now |
| @@ -1017,7 +882,6 @@ additionally traverses the parent directories until a VCS root is found | |||
| 1017 | (if any), so that the ignore rules for that repository are used, and | 882 | (if any), so that the ignore rules for that repository are used, and |
| 1018 | the file listing's performance is still optimized. | 883 | the file listing's performance is still optimized. |
| 1019 | 884 | ||
| 1020 | +++ | ||
| 1021 | *** New commands 'project-any-command' and 'project-prefix-or-any-command'. | 885 | *** New commands 'project-any-command' and 'project-prefix-or-any-command'. |
| 1022 | The former is now bound to 'C-x p o' by default. | 886 | The former is now bound to 'C-x p o' by default. |
| 1023 | The latter is designed primarily for use as a value of | 887 | The latter is designed primarily for use as a value of |
| @@ -1028,7 +892,6 @@ you can add this to your init script: | |||
| 1028 | 892 | ||
| 1029 | (setopt project-switch-commands #'project-prefix-or-any-command) | 893 | (setopt project-switch-commands #'project-prefix-or-any-command) |
| 1030 | 894 | ||
| 1031 | --- | ||
| 1032 | *** New variable 'project-files-relative-names'. | 895 | *** New variable 'project-files-relative-names'. |
| 1033 | If it is non-nil, 'project-files' can return file names relative to the | 896 | If it is non-nil, 'project-files' can return file names relative to the |
| 1034 | project root. Project backends can use this to improve the performance | 897 | project root. Project backends can use this to improve the performance |
| @@ -1036,26 +899,21 @@ of their 'project-files' implementation. | |||
| 1036 | 899 | ||
| 1037 | ** VC | 900 | ** VC |
| 1038 | 901 | ||
| 1039 | --- | ||
| 1040 | *** Log-Edit buffers now display a tool bar. | 902 | *** Log-Edit buffers now display a tool bar. |
| 1041 | This tool bar contains items for committing log entries and editing or | 903 | This tool bar contains items for committing log entries and editing or |
| 1042 | generating log entries, among other editing operations. | 904 | generating log entries, among other editing operations. |
| 1043 | 905 | ||
| 1044 | --- | ||
| 1045 | *** New user option 'vc-git-shortlog-switches'. | 906 | *** New user option 'vc-git-shortlog-switches'. |
| 1046 | This is a string or a list of strings that specifies the Git log | 907 | This is a string or a list of strings that specifies the Git log |
| 1047 | switches for shortlogs, such as the one produced by 'C-x v L'. | 908 | switches for shortlogs, such as the one produced by 'C-x v L'. |
| 1048 | 'vc-git-log-switches' is no longer used for shortlogs. | 909 | 'vc-git-log-switches' is no longer used for shortlogs. |
| 1049 | 910 | ||
| 1050 | --- | ||
| 1051 | *** New value 'no-backend' for user option 'vc-display-status'. | 911 | *** New value 'no-backend' for user option 'vc-display-status'. |
| 1052 | With this value only the revision number is displayed on the mode-line. | 912 | With this value only the revision number is displayed on the mode-line. |
| 1053 | 913 | ||
| 1054 | --- | ||
| 1055 | *** Obsolete command 'vc-switch-backend' re-added as 'vc-change-backend'. | 914 | *** Obsolete command 'vc-switch-backend' re-added as 'vc-change-backend'. |
| 1056 | The command was previously obsoleted and unbound in Emacs 28. | 915 | The command was previously obsoleted and unbound in Emacs 28. |
| 1057 | 916 | ||
| 1058 | --- | ||
| 1059 | *** Support for viewing VC change history across renames. | 917 | *** Support for viewing VC change history across renames. |
| 1060 | When a fileset's VC change history ends at a rename, 'C-x v l' now | 918 | When a fileset's VC change history ends at a rename, 'C-x v l' now |
| 1061 | prints the old name(s) and shows a button which jumps to the history of | 919 | prints the old name(s) and shows a button which jumps to the history of |
| @@ -1066,17 +924,14 @@ Unlike when the '--follow' switch is used, commands to see the diff of | |||
| 1066 | the old revision ('d'), to check out an old file version ('f') or to | 924 | the old revision ('d'), to check out an old file version ('f') or to |
| 1067 | annotate it ('a'), also work on revisions which precede renames. | 925 | annotate it ('a'), also work on revisions which precede renames. |
| 1068 | 926 | ||
| 1069 | --- | ||
| 1070 | *** 'vc-annotate' now abbreviates the Git revision in the buffer name. | 927 | *** 'vc-annotate' now abbreviates the Git revision in the buffer name. |
| 1071 | When using the Git backend, 'vc-annotate' will use an abbreviated | 928 | When using the Git backend, 'vc-annotate' will use an abbreviated |
| 1072 | revision identifier in its buffer name. To restore the previous | 929 | revision identifier in its buffer name. To restore the previous |
| 1073 | behavior, set user option 'vc-annotate-use-short-revision' to nil. | 930 | behavior, set user option 'vc-annotate-use-short-revision' to nil. |
| 1074 | 931 | ||
| 1075 | --- | ||
| 1076 | *** New user option 'vc-git-file-name-changes-switches'. | 932 | *** New user option 'vc-git-file-name-changes-switches'. |
| 1077 | It allows tweaking the thresholds for rename and copy detection. | 933 | It allows tweaking the thresholds for rename and copy detection. |
| 1078 | 934 | ||
| 1079 | --- | ||
| 1080 | *** VC Directory buffers now display the upstream branch in Git repositories. | 935 | *** VC Directory buffers now display the upstream branch in Git repositories. |
| 1081 | The "upstream branch" is the branch from which 'vc-pull' fetches changes | 936 | The "upstream branch" is the branch from which 'vc-pull' fetches changes |
| 1082 | by default. In Git terms, the upstream branch of branch B is determined | 937 | by default. In Git terms, the upstream branch of branch B is determined |
| @@ -1088,7 +943,6 @@ the "Tracking" header. | |||
| 1088 | 943 | ||
| 1089 | ** Diff mode | 944 | ** Diff mode |
| 1090 | 945 | ||
| 1091 | --- | ||
| 1092 | *** New user option 'diff-refine-nonmodified'. | 946 | *** New user option 'diff-refine-nonmodified'. |
| 1093 | When this is non-nil, 'diff-refine-hunk' will highlight lines that were | 947 | When this is non-nil, 'diff-refine-hunk' will highlight lines that were |
| 1094 | added or removed in their entirety (as opposed to modified lines, where | 948 | added or removed in their entirety (as opposed to modified lines, where |
| @@ -1096,26 +950,22 @@ some parts of the line were modified), using the same faces as for | |||
| 1096 | highlighting the words added and removed within modified lines. The | 950 | highlighting the words added and removed within modified lines. The |
| 1097 | default value is nil. | 951 | default value is nil. |
| 1098 | 952 | ||
| 1099 | +++ | ||
| 1100 | *** 'diff-ignore-whitespace-hunk' can now be applied to all hunks. | 953 | *** 'diff-ignore-whitespace-hunk' can now be applied to all hunks. |
| 1101 | When called with a non-nil prefix argument, | 954 | When called with a non-nil prefix argument, |
| 1102 | 'diff-ignore-whitespace-hunk' now iterates over all the hunks in the | 955 | 'diff-ignore-whitespace-hunk' now iterates over all the hunks in the |
| 1103 | current diff, regenerating them without whitespace changes. | 956 | current diff, regenerating them without whitespace changes. |
| 1104 | 957 | ||
| 1105 | +++ | ||
| 1106 | *** New user option 'diff-ignore-whitespace-switches'. | 958 | *** New user option 'diff-ignore-whitespace-switches'. |
| 1107 | This allows changing which type of whitespace changes are ignored when | 959 | This allows changing which type of whitespace changes are ignored when |
| 1108 | regenerating hunks with 'diff-ignore-whitespace-hunk'. Defaults to | 960 | regenerating hunks with 'diff-ignore-whitespace-hunk'. Defaults to |
| 1109 | the previously hard-coded "-b". | 961 | the previously hard-coded "-b". |
| 1110 | 962 | ||
| 1111 | +++ | ||
| 1112 | *** New command 'diff-apply-buffer' bound to 'C-c RET a'. | 963 | *** New command 'diff-apply-buffer' bound to 'C-c RET a'. |
| 1113 | It applies the diff in the entire diff buffer and | 964 | It applies the diff in the entire diff buffer and |
| 1114 | saves all modified file buffers. | 965 | saves all modified file buffers. |
| 1115 | 966 | ||
| 1116 | ** Dired | 967 | ** Dired |
| 1117 | 968 | ||
| 1118 | --- | ||
| 1119 | *** New user option 'dired-movement-style'. | 969 | *** New user option 'dired-movement-style'. |
| 1120 | When non-nil, make 'dired-next-line', 'dired-previous-line', | 970 | When non-nil, make 'dired-next-line', 'dired-previous-line', |
| 1121 | 'dired-next-dirline', 'dired-prev-dirline' skip empty lines. | 971 | 'dired-next-dirline', 'dired-prev-dirline' skip empty lines. |
| @@ -1123,7 +973,6 @@ It also controls how to move point when encountering a boundary | |||
| 1123 | (e.g., if every line is visible, invoking 'dired-next-line' at | 973 | (e.g., if every line is visible, invoking 'dired-next-line' at |
| 1124 | the last line will move to the first line). The default is nil. | 974 | the last line will move to the first line). The default is nil. |
| 1125 | 975 | ||
| 1126 | --- | ||
| 1127 | *** New user option 'dired-filename-display-length'. | 976 | *** New user option 'dired-filename-display-length'. |
| 1128 | It is an integer representing the maximum display length of file names. | 977 | It is an integer representing the maximum display length of file names. |
| 1129 | The middle part of a file name whose length exceeds the restriction is | 978 | The middle part of a file name whose length exceeds the restriction is |
| @@ -1131,7 +980,6 @@ hidden and an ellipsis is displayed instead. A value of 'window' | |||
| 1131 | means using the right edge of window as the display restriction. The | 980 | means using the right edge of window as the display restriction. The |
| 1132 | default is nil. | 981 | default is nil. |
| 1133 | 982 | ||
| 1134 | --- | ||
| 1135 | *** New user option 'shell-command-guess-functions'. | 983 | *** New user option 'shell-command-guess-functions'. |
| 1136 | It defines how to populate a list of commands available | 984 | It defines how to populate a list of commands available |
| 1137 | for 'M-!', 'M-&', '!', '&' and the context menu "Open With" | 985 | for 'M-!', 'M-&', '!', '&' and the context menu "Open With" |
| @@ -1140,32 +988,27 @@ based on marked files in Dired. Possible backends are | |||
| 1140 | and a universal command such as "open" or "start" | 988 | and a universal command such as "open" or "start" |
| 1141 | that delegates to the OS. | 989 | that delegates to the OS. |
| 1142 | 990 | ||
| 1143 | +++ | ||
| 1144 | *** New command 'dired-do-open'. | 991 | *** New command 'dired-do-open'. |
| 1145 | This command is bound to 'E' (mnemonics "External"). Also it can be | 992 | This command is bound to 'E' (mnemonics "External"). Also it can be |
| 1146 | used by clicking "Open" in the context menu; it "opens" the marked or | 993 | used by clicking "Open" in the context menu; it "opens" the marked or |
| 1147 | clicked on files according to the OS conventions. For example, on | 994 | clicked on files according to the OS conventions. For example, on |
| 1148 | systems supporting XDG, this runs 'xdg-open' on the files. | 995 | systems supporting XDG, this runs 'xdg-open' on the files. |
| 1149 | 996 | ||
| 1150 | +++ | ||
| 1151 | *** New variable 'dired-guess-shell-alist-optional'. | 997 | *** New variable 'dired-guess-shell-alist-optional'. |
| 1152 | It contains commands for external viewers and players for various media | 998 | It contains commands for external viewers and players for various media |
| 1153 | formats, moved to this list from 'dired-guess-shell-alist-default'. | 999 | formats, moved to this list from 'dired-guess-shell-alist-default'. |
| 1154 | 1000 | ||
| 1155 | --- | ||
| 1156 | *** The default value of 'dired-omit-size-limit' was increased. | 1001 | *** The default value of 'dired-omit-size-limit' was increased. |
| 1157 | After performance improvements to omitting in large directories, the new | 1002 | After performance improvements to omitting in large directories, the new |
| 1158 | default value is 300k, up from 100k. This means 'dired-omit-mode' will | 1003 | default value is 300k, up from 100k. This means 'dired-omit-mode' will |
| 1159 | omit files in directories whose directory listing is up to 300 kilobytes | 1004 | omit files in directories whose directory listing is up to 300 kilobytes |
| 1160 | in size. | 1005 | in size. |
| 1161 | 1006 | ||
| 1162 | +++ | ||
| 1163 | *** 'dired-listing-switches' handles connection-local values if exist. | 1007 | *** 'dired-listing-switches' handles connection-local values if exist. |
| 1164 | This allows you to customize different switches for different remote machines. | 1008 | This allows you to customize different switches for different remote machines. |
| 1165 | 1009 | ||
| 1166 | ** Ediff | 1010 | ** Ediff |
| 1167 | 1011 | ||
| 1168 | --- | ||
| 1169 | *** New user option 'ediff-floating-control-frame'. | 1012 | *** New user option 'ediff-floating-control-frame'. |
| 1170 | If non-nil, try making the control frame be floating rather than tiled. | 1013 | If non-nil, try making the control frame be floating rather than tiled. |
| 1171 | 1014 | ||
| @@ -1175,21 +1018,18 @@ This option is useful to set if you use such a window manager. | |||
| 1175 | 1018 | ||
| 1176 | ** Buffer Selection | 1019 | ** Buffer Selection |
| 1177 | 1020 | ||
| 1178 | --- | ||
| 1179 | *** New user option 'bs-default-action-list'. | 1021 | *** New user option 'bs-default-action-list'. |
| 1180 | You can now configure how to display the "*buffer-selection*" buffer | 1022 | You can now configure how to display the "*buffer-selection*" buffer |
| 1181 | using this new option. (Or set 'display-buffer-alist' directly.) | 1023 | using this new option. (Or set 'display-buffer-alist' directly.) |
| 1182 | 1024 | ||
| 1183 | ** Eshell | 1025 | ** Eshell |
| 1184 | 1026 | ||
| 1185 | +++ | ||
| 1186 | *** You can now run Eshell scripts in batch mode. | 1027 | *** You can now run Eshell scripts in batch mode. |
| 1187 | By adding the following interpreter directive to an Eshell script, you | 1028 | By adding the following interpreter directive to an Eshell script, you |
| 1188 | can make it executable like other shell scripts: | 1029 | can make it executable like other shell scripts: |
| 1189 | 1030 | ||
| 1190 | #!/usr/bin/env -S emacs --batch -f eshell-batch-file | 1031 | #!/usr/bin/env -S emacs --batch -f eshell-batch-file |
| 1191 | 1032 | ||
| 1192 | +++ | ||
| 1193 | *** New builtin Eshell command 'compile'. | 1033 | *** New builtin Eshell command 'compile'. |
| 1194 | This command runs another command, sending its output to a compilation | 1034 | This command runs another command, sending its output to a compilation |
| 1195 | buffer when the command would output interactively. This can be useful | 1035 | buffer when the command would output interactively. This can be useful |
| @@ -1198,14 +1038,12 @@ appropriate, but still allow piping the output elsewhere if desired. | |||
| 1198 | For more information, see the "(eshell) Built-ins" node in the Eshell | 1038 | For more information, see the "(eshell) Built-ins" node in the Eshell |
| 1199 | manual. | 1039 | manual. |
| 1200 | 1040 | ||
| 1201 | +++ | ||
| 1202 | *** Eshell's 'env' command now supports running commands. | 1041 | *** Eshell's 'env' command now supports running commands. |
| 1203 | Like in many other shells, Eshell's 'env' command now lets you run a | 1042 | Like in many other shells, Eshell's 'env' command now lets you run a |
| 1204 | command passed as arguments to 'env'. If you pass any initial | 1043 | command passed as arguments to 'env'. If you pass any initial |
| 1205 | arguments of the form 'VAR=VALUE', 'env' will first set 'VAR' to | 1044 | arguments of the form 'VAR=VALUE', 'env' will first set 'VAR' to |
| 1206 | 'VALUE' before running the command. | 1045 | 'VALUE' before running the command. |
| 1207 | 1046 | ||
| 1208 | --- | ||
| 1209 | *** Eshell's 'umask' command now supports setting the mask symbolically. | 1047 | *** Eshell's 'umask' command now supports setting the mask symbolically. |
| 1210 | Now, you can pass an argument like "u+w,o-r" to Eshell's 'umask' | 1048 | Now, you can pass an argument like "u+w,o-r" to Eshell's 'umask' |
| 1211 | command, which will give write permission for owners of newly-created | 1049 | command, which will give write permission for owners of newly-created |
| @@ -1213,7 +1051,6 @@ files and deny read permission for users who are not members of the | |||
| 1213 | file's group. See the Info node "(coreutils) File permissions" for | 1051 | file's group. See the Info node "(coreutils) File permissions" for |
| 1214 | more information on this notation. | 1052 | more information on this notation. |
| 1215 | 1053 | ||
| 1216 | --- | ||
| 1217 | *** Performance improvements for interactive output in Eshell. | 1054 | *** Performance improvements for interactive output in Eshell. |
| 1218 | Interactive output in Eshell should now be significantly faster, | 1055 | Interactive output in Eshell should now be significantly faster, |
| 1219 | especially for commands that can print large amounts of output | 1056 | especially for commands that can print large amounts of output |
| @@ -1222,12 +1059,10 @@ for password prompts in the last 256 characters of each block of output. | |||
| 1222 | To restore the previous behavior when checking for password prompts, set | 1059 | To restore the previous behavior when checking for password prompts, set |
| 1223 | 'eshell-password-prompt-max-length' to 'most-positive-fixnum'. | 1060 | 'eshell-password-prompt-max-length' to 'most-positive-fixnum'. |
| 1224 | 1061 | ||
| 1225 | --- | ||
| 1226 | *** Eshell built-in commands can now display progress. | 1062 | *** Eshell built-in commands can now display progress. |
| 1227 | Eshell built-in commands like "cat" and "ls" now update the display | 1063 | Eshell built-in commands like "cat" and "ls" now update the display |
| 1228 | periodically while running to show their progress. | 1064 | periodically while running to show their progress. |
| 1229 | 1065 | ||
| 1230 | +++ | ||
| 1231 | *** New special reference type '#<marker POSITION BUFFER>'. | 1066 | *** New special reference type '#<marker POSITION BUFFER>'. |
| 1232 | This special reference type returns a marker at 'POSITION' in | 1067 | This special reference type returns a marker at 'POSITION' in |
| 1233 | 'BUFFER'. You can insert it by typing or using the new interactive | 1068 | 'BUFFER'. You can insert it by typing or using the new interactive |
| @@ -1236,7 +1071,6 @@ references of any type using the new interactive command | |||
| 1236 | 'eshell-insert-special-reference'. See the "(eshell) Arguments" node | 1071 | 'eshell-insert-special-reference'. See the "(eshell) Arguments" node |
| 1237 | in the Eshell manual for more details. | 1072 | in the Eshell manual for more details. |
| 1238 | 1073 | ||
| 1239 | +++ | ||
| 1240 | *** New splice operator for Eshell dollar expansions. | 1074 | *** New splice operator for Eshell dollar expansions. |
| 1241 | Dollar expansions in Eshell now let you splice the elements of the | 1075 | Dollar expansions in Eshell now let you splice the elements of the |
| 1242 | expansion in-place using '$@expr'. This makes it easier to fill lists | 1076 | expansion in-place using '$@expr'. This makes it easier to fill lists |
| @@ -1244,21 +1078,18 @@ of arguments into a command, such as when defining aliases. For more | |||
| 1244 | information, see the "(eshell) Dollars Expansion" node in the Eshell | 1078 | information, see the "(eshell) Dollars Expansion" node in the Eshell |
| 1245 | manual. | 1079 | manual. |
| 1246 | 1080 | ||
| 1247 | +++ | ||
| 1248 | *** You can now splice Eshell globs in-place into argument lists. | 1081 | *** You can now splice Eshell globs in-place into argument lists. |
| 1249 | By setting 'eshell-glob-splice-results' to a non-nil value, Eshell | 1082 | By setting 'eshell-glob-splice-results' to a non-nil value, Eshell |
| 1250 | will expand glob results in-place as if you had typed each matching | 1083 | will expand glob results in-place as if you had typed each matching |
| 1251 | file name individually. For more information, see the "(eshell) | 1084 | file name individually. For more information, see the "(eshell) |
| 1252 | Globbing" node in the Eshell manual. | 1085 | Globbing" node in the Eshell manual. |
| 1253 | 1086 | ||
| 1254 | +++ | ||
| 1255 | *** Eshell now supports negative numbers and ranges for indices. | 1087 | *** Eshell now supports negative numbers and ranges for indices. |
| 1256 | Now, you can retrieve the last element of a list with '$my-list[-1]' | 1088 | Now, you can retrieve the last element of a list with '$my-list[-1]' |
| 1257 | or get a sublist of elements 2 through 4 with '$my-list[2..5]'. For | 1089 | or get a sublist of elements 2 through 4 with '$my-list[2..5]'. For |
| 1258 | more information, see the "(eshell) Dollars Expansion" node in the | 1090 | more information, see the "(eshell) Dollars Expansion" node in the |
| 1259 | Eshell manual. | 1091 | Eshell manual. |
| 1260 | 1092 | ||
| 1261 | +++ | ||
| 1262 | *** Eshell commands can now be explicitly-remote (or local). | 1093 | *** Eshell commands can now be explicitly-remote (or local). |
| 1263 | By prefixing a command name in Eshell with a remote identifier, like | 1094 | By prefixing a command name in Eshell with a remote identifier, like |
| 1264 | "/ssh:user@remote:whoami", you can now run commands on a particular | 1095 | "/ssh:user@remote:whoami", you can now run commands on a particular |
| @@ -1267,12 +1098,10 @@ command on your local system no matter your current directory via | |||
| 1267 | "/local:whoami". For more information, see the "(eshell) Remote Access" | 1098 | "/local:whoami". For more information, see the "(eshell) Remote Access" |
| 1268 | node in the Eshell manual. | 1099 | node in the Eshell manual. |
| 1269 | 1100 | ||
| 1270 | +++ | ||
| 1271 | *** Eshell's '$UID' and '$GID' variables are now connection-aware. | 1101 | *** Eshell's '$UID' and '$GID' variables are now connection-aware. |
| 1272 | Now, when expanding '$UID' or '$GID' in a remote directory, the value | 1102 | Now, when expanding '$UID' or '$GID' in a remote directory, the value |
| 1273 | is the user or group ID associated with the remote connection. | 1103 | is the user or group ID associated with the remote connection. |
| 1274 | 1104 | ||
| 1275 | --- | ||
| 1276 | *** Eshell now uses 'field' properties in its output. | 1105 | *** Eshell now uses 'field' properties in its output. |
| 1277 | In particular, this means that pressing the '<home>' key moves the | 1106 | In particular, this means that pressing the '<home>' key moves the |
| 1278 | point to the beginning of your input, not the beginning of the whole | 1107 | point to the beginning of your input, not the beginning of the whole |
| @@ -1284,25 +1113,20 @@ this to your configuration: | |||
| 1284 | This also means you no longer need to adjust 'eshell-prompt-regexp' | 1113 | This also means you no longer need to adjust 'eshell-prompt-regexp' |
| 1285 | when customizing your Eshell prompt. | 1114 | when customizing your Eshell prompt. |
| 1286 | 1115 | ||
| 1287 | --- | ||
| 1288 | *** You can now properly unload Eshell. | 1116 | *** You can now properly unload Eshell. |
| 1289 | Calling '(unload-feature 'eshell)' no longer signals an error, and now | 1117 | Calling '(unload-feature 'eshell)' no longer signals an error, and now |
| 1290 | correctly unloads Eshell and all of its modules. | 1118 | correctly unloads Eshell and all of its modules. |
| 1291 | 1119 | ||
| 1292 | +++ | ||
| 1293 | *** 'eshell-read-aliases-list' is now an interactive command. | 1120 | *** 'eshell-read-aliases-list' is now an interactive command. |
| 1294 | After manually editing 'eshell-aliases-file', you can use this command | 1121 | After manually editing 'eshell-aliases-file', you can use this command |
| 1295 | to load the edited aliases. | 1122 | to load the edited aliases. |
| 1296 | 1123 | ||
| 1297 | +++ | ||
| 1298 | *** 'rgrep' is now a builtin Eshell command. | 1124 | *** 'rgrep' is now a builtin Eshell command. |
| 1299 | Running 'rgrep' in Eshell now uses the Emacs grep facility instead of | 1125 | Running 'rgrep' in Eshell now uses the Emacs grep facility instead of |
| 1300 | calling external rgrep. | 1126 | calling external rgrep. |
| 1301 | 1127 | ||
| 1302 | +++ | ||
| 1303 | *** If a command exits abnormally, the Eshell prompt now shows its exit code. | 1128 | *** If a command exits abnormally, the Eshell prompt now shows its exit code. |
| 1304 | 1129 | ||
| 1305 | +++ | ||
| 1306 | *** New user option 'eshell-history-append'. | 1130 | *** New user option 'eshell-history-append'. |
| 1307 | If non-nil, each Eshell session will save history by appending new | 1131 | If non-nil, each Eshell session will save history by appending new |
| 1308 | entries of that session to the history file rather than overwriting | 1132 | entries of that session to the history file rather than overwriting |
| @@ -1310,25 +1134,21 @@ the file with the whole history of the session. The default is nil. | |||
| 1310 | 1134 | ||
| 1311 | ** Pcomplete | 1135 | ** Pcomplete |
| 1312 | 1136 | ||
| 1313 | --- | ||
| 1314 | *** New user option 'pcomplete-remote-file-ignore'. | 1137 | *** New user option 'pcomplete-remote-file-ignore'. |
| 1315 | When this option is non-nil, remote file names are not completed by | 1138 | When this option is non-nil, remote file names are not completed by |
| 1316 | Pcomplete. Packages, like 'shell-mode', could set this in order to | 1139 | Pcomplete. Packages, like 'shell-mode', could set this in order to |
| 1317 | suppress remote file name completion at all. | 1140 | suppress remote file name completion at all. |
| 1318 | 1141 | ||
| 1319 | --- | ||
| 1320 | *** Completion for the 'doas' command has been added. | 1142 | *** Completion for the 'doas' command has been added. |
| 1321 | Command completion for 'doas' in Eshell and Shell mode will now work. | 1143 | Command completion for 'doas' in Eshell and Shell mode will now work. |
| 1322 | 1144 | ||
| 1323 | ** Shell mode | 1145 | ** Shell mode |
| 1324 | 1146 | ||
| 1325 | +++ | ||
| 1326 | *** New user option 'shell-get-old-input-include-continuation-lines'. | 1147 | *** New user option 'shell-get-old-input-include-continuation-lines'. |
| 1327 | When this user option is non-nil, 'shell-get-old-input' ('C-RET') | 1148 | When this user option is non-nil, 'shell-get-old-input' ('C-RET') |
| 1328 | includes multiple shell "\" continuation lines from command output. | 1149 | includes multiple shell "\" continuation lines from command output. |
| 1329 | Default is nil. | 1150 | Default is nil. |
| 1330 | 1151 | ||
| 1331 | +++ | ||
| 1332 | *** New user option 'shell-history-file-name'. | 1152 | *** New user option 'shell-history-file-name'. |
| 1333 | When this user option is set to t, 'shell-mode' does not read the shell | 1153 | When this user option is set to t, 'shell-mode' does not read the shell |
| 1334 | history file. Setting this user option to a string specifies the name | 1154 | history file. Setting this user option to a string specifies the name |
| @@ -1337,7 +1157,6 @@ environment variable 'HISTFILE'. | |||
| 1337 | 1157 | ||
| 1338 | In a 'shell' buffer, this user option is connection-local. | 1158 | In a 'shell' buffer, this user option is connection-local. |
| 1339 | 1159 | ||
| 1340 | --- | ||
| 1341 | *** Performance improvements for interactive output. | 1160 | *** Performance improvements for interactive output. |
| 1342 | Interactive output in Shell mode now scans more selectively for password | 1161 | Interactive output in Shell mode now scans more selectively for password |
| 1343 | prompts by only examining the last 256 characters of each block of | 1162 | prompts by only examining the last 256 characters of each block of |
| @@ -1347,7 +1166,6 @@ To restore the old behavior, set 'comint-password-prompt-max-length' to | |||
| 1347 | 1166 | ||
| 1348 | ** Prog mode | 1167 | ** Prog mode |
| 1349 | 1168 | ||
| 1350 | +++ | ||
| 1351 | *** New command 'prog-fill-reindent-defun'. | 1169 | *** New command 'prog-fill-reindent-defun'. |
| 1352 | This command either fills a single paragraph in a defun, such as a | 1170 | This command either fills a single paragraph in a defun, such as a |
| 1353 | docstring, or a comment, or (re)indents the surrounding defun if point | 1171 | docstring, or a comment, or (re)indents the surrounding defun if point |
| @@ -1356,26 +1174,22 @@ is not in a comment or a string. By default, it is bound to 'M-q' in | |||
| 1356 | 1174 | ||
| 1357 | ** Imenu | 1175 | ** Imenu |
| 1358 | 1176 | ||
| 1359 | +++ | ||
| 1360 | *** New user option 'imenu-flatten'. | 1177 | *** New user option 'imenu-flatten'. |
| 1361 | It controls whether to flatten the list of sections in an imenu, and | 1178 | It controls whether to flatten the list of sections in an imenu, and |
| 1362 | how to display the sections in the flattened list. | 1179 | how to display the sections in the flattened list. |
| 1363 | 1180 | ||
| 1364 | +++ | ||
| 1365 | *** The sort order of Imenu completions can now be customized. | 1181 | *** The sort order of Imenu completions can now be customized. |
| 1366 | You can customize the user option 'completion-category-overrides' | 1182 | You can customize the user option 'completion-category-overrides' |
| 1367 | and set 'display-sort-function' for the category 'imenu'. | 1183 | and set 'display-sort-function' for the category 'imenu'. |
| 1368 | 1184 | ||
| 1369 | ** Which Function mode | 1185 | ** Which Function mode |
| 1370 | 1186 | ||
| 1371 | +++ | ||
| 1372 | *** Which Function mode can now display function names on the header line. | 1187 | *** Which Function mode can now display function names on the header line. |
| 1373 | The new user option 'which-func-display' allows choosing where the | 1188 | The new user option 'which-func-display' allows choosing where the |
| 1374 | function name is displayed. The default is 'mode' to display in the | 1189 | function name is displayed. The default is 'mode' to display in the |
| 1375 | mode line. 'header' will display in the header line; | 1190 | mode line. 'header' will display in the header line; |
| 1376 | 'mode-and-header' displays in both the header line and mode line. | 1191 | 'mode-and-header' displays in both the header line and mode line. |
| 1377 | 1192 | ||
| 1378 | +++ | ||
| 1379 | *** New user option 'which-func-update-delay'. | 1193 | *** New user option 'which-func-update-delay'. |
| 1380 | This replaces the user option 'idle-update-delay', which was previously | 1194 | This replaces the user option 'idle-update-delay', which was previously |
| 1381 | used to control the delay before 'which-function-mode' updated its | 1195 | used to control the delay before 'which-function-mode' updated its |
| @@ -1384,28 +1198,23 @@ Which Function mode, is now obsolete. | |||
| 1384 | 1198 | ||
| 1385 | ** Tramp | 1199 | ** Tramp |
| 1386 | 1200 | ||
| 1387 | +++ | ||
| 1388 | *** Tramp methods can be optional. | 1201 | *** Tramp methods can be optional. |
| 1389 | An optional connection method is not enabled by default. The user must | 1202 | An optional connection method is not enabled by default. The user must |
| 1390 | enable it explicitly by the 'tramp-enable-method' command. The existing | 1203 | enable it explicitly by the 'tramp-enable-method' command. The existing |
| 1391 | methods "fcp", "krlogin", " ksu" and "nc" are optional now. | 1204 | methods "fcp", "krlogin", " ksu" and "nc" are optional now. |
| 1392 | 1205 | ||
| 1393 | +++ | ||
| 1394 | *** New optional connection method "androidsu". | 1206 | *** New optional connection method "androidsu". |
| 1395 | This provides access to system files with elevated privileges granted by | 1207 | This provides access to system files with elevated privileges granted by |
| 1396 | the idiosyncratic 'su' implementations and system utilities customary on | 1208 | the idiosyncratic 'su' implementations and system utilities customary on |
| 1397 | Android. | 1209 | Android. |
| 1398 | 1210 | ||
| 1399 | +++ | ||
| 1400 | *** New optional connection method "run0". | 1211 | *** New optional connection method "run0". |
| 1401 | This connection method is similar to "sudo", but it uses the 'systemd' | 1212 | This connection method is similar to "sudo", but it uses the 'systemd' |
| 1402 | framework internally. | 1213 | framework internally. |
| 1403 | 1214 | ||
| 1404 | +++ | ||
| 1405 | *** New connection methods "dockercp" and "podmancp". | 1215 | *** New connection methods "dockercp" and "podmancp". |
| 1406 | These are the external methods counterparts of "docker" and "podman". | 1216 | These are the external methods counterparts of "docker" and "podman". |
| 1407 | 1217 | ||
| 1408 | +++ | ||
| 1409 | *** New optional connection methods for containers. | 1218 | *** New optional connection methods for containers. |
| 1410 | There are new optional connection methods "toolbox", "distrobox", | 1219 | There are new optional connection methods "toolbox", "distrobox", |
| 1411 | "flatpak", "apptainer" and "nspawn". They allow accessing system | 1220 | "flatpak", "apptainer" and "nspawn". They allow accessing system |
| @@ -1413,7 +1222,6 @@ containers provided by Toolbox or Distrobox, sandboxes provided by | |||
| 1413 | Flatpak, instances managed by Apptainer, or accessing systemd-based | 1222 | Flatpak, instances managed by Apptainer, or accessing systemd-based |
| 1414 | light-weight containers.. | 1223 | light-weight containers.. |
| 1415 | 1224 | ||
| 1416 | +++ | ||
| 1417 | *** Connection method "kubernetes" supports now optional container name. | 1225 | *** Connection method "kubernetes" supports now optional container name. |
| 1418 | The host name for Kubernetes connections can be of kind [CONTAINER.]POD, | 1226 | The host name for Kubernetes connections can be of kind [CONTAINER.]POD, |
| 1419 | in order to specify a dedicated container. If there is just the pod | 1227 | in order to specify a dedicated container. If there is just the pod |
| @@ -1421,7 +1229,6 @@ name, the first container in the pod is taken. The new user options | |||
| 1421 | 'tramp-kubernetes-context' and 'tramp-kubernetes-namespace' allow | 1229 | 'tramp-kubernetes-context' and 'tramp-kubernetes-namespace' allow |
| 1422 | accessing pods with different context or namespace but the default one. | 1230 | accessing pods with different context or namespace but the default one. |
| 1423 | 1231 | ||
| 1424 | +++ | ||
| 1425 | *** Rename 'tramp-use-ssh-controlmaster-options' to 'tramp-use-connection-share'. | 1232 | *** Rename 'tramp-use-ssh-controlmaster-options' to 'tramp-use-connection-share'. |
| 1426 | The old name still exists as obsolete variable alias. This user | 1233 | The old name still exists as obsolete variable alias. This user |
| 1427 | option controls now connection sharing for both ssh-based and | 1234 | option controls now connection sharing for both ssh-based and |
| @@ -1430,39 +1237,33 @@ The latter suppresses also "ControlMaster" settings in the user's | |||
| 1430 | "~/.ssh/config" file, or connection share configuration in PuTTY | 1237 | "~/.ssh/config" file, or connection share configuration in PuTTY |
| 1431 | sessions, respectively. | 1238 | sessions, respectively. |
| 1432 | 1239 | ||
| 1433 | +++ | ||
| 1434 | *** New command 'tramp-cleanup-some-buffers'. | 1240 | *** New command 'tramp-cleanup-some-buffers'. |
| 1435 | It kills only a subset of opened remote buffers, subject to the user | 1241 | It kills only a subset of opened remote buffers, subject to the user |
| 1436 | option 'tramp-cleanup-some-buffers-hook'. | 1242 | option 'tramp-cleanup-some-buffers-hook'. |
| 1437 | 1243 | ||
| 1438 | +++ | ||
| 1439 | *** New command 'inhibit-remote-files'. | 1244 | *** New command 'inhibit-remote-files'. |
| 1440 | This command disables the handling of file names with the special | 1245 | This command disables the handling of file names with the special |
| 1441 | remote file name syntax. It should be applied only when remote files | 1246 | remote file name syntax. It should be applied only when remote files |
| 1442 | won't be used in this Emacs instance. It provides a slightly improved | 1247 | won't be used in this Emacs instance. It provides a slightly improved |
| 1443 | performance of file name handling in Emacs. | 1248 | performance of file name handling in Emacs. |
| 1444 | 1249 | ||
| 1445 | +++ | ||
| 1446 | *** New macro 'without-remote-files'. | 1250 | *** New macro 'without-remote-files'. |
| 1447 | This macro could wrap code which handles local files only. Due to the | 1251 | This macro could wrap code which handles local files only. Due to the |
| 1448 | temporary deactivation of remote files, it results in a slightly | 1252 | temporary deactivation of remote files, it results in a slightly |
| 1449 | improved performance of file name handling in Emacs. | 1253 | improved performance of file name handling in Emacs. |
| 1450 | 1254 | ||
| 1451 | +++ | ||
| 1452 | *** New user option 'tramp-completion-multi-hop-methods'. | 1255 | *** New user option 'tramp-completion-multi-hop-methods'. |
| 1453 | It contains a list of connection methods for which completion should | 1256 | It contains a list of connection methods for which completion should |
| 1454 | be attempted at the end of a multi-hop chain. This allows completion | 1257 | be attempted at the end of a multi-hop chain. This allows completion |
| 1455 | candidates to include a list of, for example, containers running on a | 1258 | candidates to include a list of, for example, containers running on a |
| 1456 | remote docker host. | 1259 | remote docker host. |
| 1457 | 1260 | ||
| 1458 | +++ | ||
| 1459 | *** New command 'tramp-revert-buffer-with-sudo'. | 1261 | *** New command 'tramp-revert-buffer-with-sudo'. |
| 1460 | It reverts the current buffer to visit with "sudo" permissions. The | 1262 | It reverts the current buffer to visit with "sudo" permissions. The |
| 1461 | buffer must either visit a file, or it must run 'dired-mode'. Another | 1263 | buffer must either visit a file, or it must run 'dired-mode'. Another |
| 1462 | method but "sudo" can be configured with user option | 1264 | method but "sudo" can be configured with user option |
| 1463 | 'tramp-file-name-with-method'. | 1265 | 'tramp-file-name-with-method'. |
| 1464 | 1266 | ||
| 1465 | +++ | ||
| 1466 | *** Direct asynchronous processes are indicated by a connection-local variable. | 1267 | *** Direct asynchronous processes are indicated by a connection-local variable. |
| 1467 | If direct asynchronous processes shall be used, set the connection-local | 1268 | If direct asynchronous processes shall be used, set the connection-local |
| 1468 | variable 'tramp-direct-async-process' to a non-nil value. In previous | 1269 | variable 'tramp-direct-async-process' to a non-nil value. In previous |
| @@ -1472,14 +1273,12 @@ properties and 'tramp-connection-properties' in general) is now | |||
| 1472 | deprecated. See the Tramp manual "(tramp) Improving performance of | 1273 | deprecated. See the Tramp manual "(tramp) Improving performance of |
| 1473 | asynchronous remote processes". | 1274 | asynchronous remote processes". |
| 1474 | 1275 | ||
| 1475 | --- | ||
| 1476 | *** Direct asynchronous processes use 'tramp-remote-path'. | 1276 | *** Direct asynchronous processes use 'tramp-remote-path'. |
| 1477 | When a direct asynchronous process is invoked, it uses 'tramp-remote-path' | 1277 | When a direct asynchronous process is invoked, it uses 'tramp-remote-path' |
| 1478 | for setting the remote 'PATH' environment variable. | 1278 | for setting the remote 'PATH' environment variable. |
| 1479 | 1279 | ||
| 1480 | ** SHR | 1280 | ** SHR |
| 1481 | 1281 | ||
| 1482 | --- | ||
| 1483 | *** New user option 'shr-fill-text'. | 1282 | *** New user option 'shr-fill-text'. |
| 1484 | When 'shr-fill-text' is non-nil (the default), SHR will fill text | 1283 | When 'shr-fill-text' is non-nil (the default), SHR will fill text |
| 1485 | according to the width of the window. If you customize it to nil, SHR | 1284 | according to the width of the window. If you customize it to nil, SHR |
| @@ -1489,7 +1288,6 @@ visually wrapped at word boundaries. | |||
| 1489 | 1288 | ||
| 1490 | ** EWW | 1289 | ** EWW |
| 1491 | 1290 | ||
| 1492 | --- | ||
| 1493 | *** New mouse bindings in EWW buffers. | 1291 | *** New mouse bindings in EWW buffers. |
| 1494 | Certain form elements that were displayed as buttons, yet could only be | 1292 | Certain form elements that were displayed as buttons, yet could only be |
| 1495 | activated by keyboard input, are now operable using 'mouse-2'. With | 1293 | activated by keyboard input, are now operable using 'mouse-2'. With |
| @@ -1497,45 +1295,38 @@ activated by keyboard input, are now operable using 'mouse-2'. With | |||
| 1497 | other classes of buttons either toggle their values or prompt for user | 1295 | other classes of buttons either toggle their values or prompt for user |
| 1498 | input, as the case may be. | 1296 | input, as the case may be. |
| 1499 | 1297 | ||
| 1500 | --- | ||
| 1501 | *** EWW text input fields and areas are now fields. | 1298 | *** EWW text input fields and areas are now fields. |
| 1502 | In consequence, movement commands and OS input method features now | 1299 | In consequence, movement commands and OS input method features now |
| 1503 | recognize and confine their activities to the text input field around | 1300 | recognize and confine their activities to the text input field around |
| 1504 | point. See also the Info node "(elisp) Fields". | 1301 | point. See also the Info node "(elisp) Fields". |
| 1505 | 1302 | ||
| 1506 | +++ | ||
| 1507 | *** 'eww-open-file' can now display the file in a new buffer. | 1303 | *** 'eww-open-file' can now display the file in a new buffer. |
| 1508 | By default, the command reuses the "*eww*" buffer, but if called with | 1304 | By default, the command reuses the "*eww*" buffer, but if called with |
| 1509 | the new argument NEW-BUFFER non-nil, it will use a new buffer instead. | 1305 | the new argument NEW-BUFFER non-nil, it will use a new buffer instead. |
| 1510 | Interactively, invoke 'eww-open-file' with a prefix argument to | 1306 | Interactively, invoke 'eww-open-file' with a prefix argument to |
| 1511 | activate this behavior. | 1307 | activate this behavior. |
| 1512 | 1308 | ||
| 1513 | --- | ||
| 1514 | *** 'eww' URL or keyword prompt now has tab completion. | 1309 | *** 'eww' URL or keyword prompt now has tab completion. |
| 1515 | The interactive minibuffer prompt when invoking 'eww' now has support | 1310 | The interactive minibuffer prompt when invoking 'eww' now has support |
| 1516 | for tab completion. | 1311 | for tab completion. |
| 1517 | 1312 | ||
| 1518 | +++ | ||
| 1519 | *** 'eww' URL and keyword prompt now completes suggested URIs and bookmarks. | 1313 | *** 'eww' URL and keyword prompt now completes suggested URIs and bookmarks. |
| 1520 | The interactive minibuffer prompt when invoking 'eww' now provides | 1314 | The interactive minibuffer prompt when invoking 'eww' now provides |
| 1521 | completions from 'eww-suggest-uris'. 'eww-suggest-uris' now includes | 1315 | completions from 'eww-suggest-uris'. 'eww-suggest-uris' now includes |
| 1522 | bookmark URIs. | 1316 | bookmark URIs. |
| 1523 | 1317 | ||
| 1524 | +++ | ||
| 1525 | *** New command 'eww-copy-alternate-url'. | 1318 | *** New command 'eww-copy-alternate-url'. |
| 1526 | It copies an alternate link on the page currently visited in EWW into | 1319 | It copies an alternate link on the page currently visited in EWW into |
| 1527 | the kill ring. Alternate links are optional metadata that HTML pages | 1320 | the kill ring. Alternate links are optional metadata that HTML pages |
| 1528 | use for linking to their alternative representations, such as translated | 1321 | use for linking to their alternative representations, such as translated |
| 1529 | versions or associated RSS feeds. It is bound to 'A' by default. | 1322 | versions or associated RSS feeds. It is bound to 'A' by default. |
| 1530 | 1323 | ||
| 1531 | +++ | ||
| 1532 | *** 'eww-open-in-new-buffer' supports the prefix argument. | 1324 | *** 'eww-open-in-new-buffer' supports the prefix argument. |
| 1533 | When invoked with the prefix argument ('C-u'), | 1325 | When invoked with the prefix argument ('C-u'), |
| 1534 | 'eww-open-in-new-buffer' will not make the new buffer the current one. | 1326 | 'eww-open-in-new-buffer' will not make the new buffer the current one. |
| 1535 | This is useful for continuing reading the URL in the current buffer | 1327 | This is useful for continuing reading the URL in the current buffer |
| 1536 | when the new URL is fetched. | 1328 | when the new URL is fetched. |
| 1537 | 1329 | ||
| 1538 | --- | ||
| 1539 | *** History navigation in EWW now behaves as in other browsers. | 1330 | *** History navigation in EWW now behaves as in other browsers. |
| 1540 | Previously, when navigating back and forward through page history, EWW | 1331 | Previously, when navigating back and forward through page history, EWW |
| 1541 | would add a duplicate entry to the end of the history list each time. | 1332 | would add a duplicate entry to the end of the history list each time. |
| @@ -1548,27 +1339,23 @@ entries newer than the current page. To change the behavior when | |||
| 1548 | browsing from "historical" pages, you can customize | 1339 | browsing from "historical" pages, you can customize |
| 1549 | 'eww-before-browse-history-function'. | 1340 | 'eww-before-browse-history-function'. |
| 1550 | 1341 | ||
| 1551 | +++ | ||
| 1552 | *** 'eww-readable' now toggles display of the readable parts of a web page. | 1342 | *** 'eww-readable' now toggles display of the readable parts of a web page. |
| 1553 | When called interactively, 'eww-readable' toggles whether to display | 1343 | When called interactively, 'eww-readable' toggles whether to display |
| 1554 | only the readable parts of a page or the full page. With a positive | 1344 | only the readable parts of a page or the full page. With a positive |
| 1555 | prefix argument, it always displays the readable parts, and with a zero | 1345 | prefix argument, it always displays the readable parts, and with a zero |
| 1556 | or negative prefix, it always displays the full page. | 1346 | or negative prefix, it always displays the full page. |
| 1557 | 1347 | ||
| 1558 | +++ | ||
| 1559 | *** New user option 'eww-readable-urls'. | 1348 | *** New user option 'eww-readable-urls'. |
| 1560 | This is a list of regular expressions matching the URLs where EWW should | 1349 | This is a list of regular expressions matching the URLs where EWW should |
| 1561 | display only the readable parts by default. For more details, see | 1350 | display only the readable parts by default. For more details, see |
| 1562 | "(eww) Basics" in the EWW manual. | 1351 | "(eww) Basics" in the EWW manual. |
| 1563 | 1352 | ||
| 1564 | --- | ||
| 1565 | *** New user option 'eww-readable-adds-to-history'. | 1353 | *** New user option 'eww-readable-adds-to-history'. |
| 1566 | When non-nil (the default), calling 'eww-readable' adds a new entry to | 1354 | When non-nil (the default), calling 'eww-readable' adds a new entry to |
| 1567 | the EWW page history. | 1355 | the EWW page history. |
| 1568 | 1356 | ||
| 1569 | ** Go-ts mode | 1357 | ** Go-ts mode |
| 1570 | 1358 | ||
| 1571 | +++ | ||
| 1572 | *** New command 'go-ts-mode-docstring'. | 1359 | *** New command 'go-ts-mode-docstring'. |
| 1573 | This command adds a docstring comment to the current defun. If a | 1360 | This command adds a docstring comment to the current defun. If a |
| 1574 | comment already exists, point is only moved to the comment. It is | 1361 | comment already exists, point is only moved to the comment. It is |
| @@ -1576,12 +1363,10 @@ bound to 'C-c C-d' in 'go-ts-mode'. | |||
| 1576 | 1363 | ||
| 1577 | ** Man mode | 1364 | ** Man mode |
| 1578 | 1365 | ||
| 1579 | +++ | ||
| 1580 | *** New user option 'Man-prefer-synchronous-call'. | 1366 | *** New user option 'Man-prefer-synchronous-call'. |
| 1581 | When this is non-nil, run the 'man' command synchronously rather than | 1367 | When this is non-nil, run the 'man' command synchronously rather than |
| 1582 | asynchronously (which is the default behavior). | 1368 | asynchronously (which is the default behavior). |
| 1583 | 1369 | ||
| 1584 | +++ | ||
| 1585 | *** New user option 'Man-support-remote-systems'. | 1370 | *** New user option 'Man-support-remote-systems'. |
| 1586 | This option controls whether the man page is formatted on the remote | 1371 | This option controls whether the man page is formatted on the remote |
| 1587 | system when the current buffer's default-directory is remote. You can | 1372 | system when the current buffer's default-directory is remote. You can |
| @@ -1590,12 +1375,10 @@ value of this option for the current invocation of 'man'. | |||
| 1590 | 1375 | ||
| 1591 | ** DocView | 1376 | ** DocView |
| 1592 | 1377 | ||
| 1593 | --- | ||
| 1594 | *** New user option 'doc-view-mpdf-use-svg'. | 1378 | *** New user option 'doc-view-mpdf-use-svg'. |
| 1595 | If non-nil, DocView uses SVG images to display PDF documents. The | 1379 | If non-nil, DocView uses SVG images to display PDF documents. The |
| 1596 | default is non-nil if your system supports display of SVG images. | 1380 | default is non-nil if your system supports display of SVG images. |
| 1597 | 1381 | ||
| 1598 | --- | ||
| 1599 | *** New face 'doc-view-svg-face'. | 1382 | *** New face 'doc-view-svg-face'. |
| 1600 | This replaces 'doc-view-svg-foreground' and 'doc-view-svg-background'. | 1383 | This replaces 'doc-view-svg-foreground' and 'doc-view-svg-background'. |
| 1601 | By default, this face has black foreground on white background and | 1384 | By default, this face has black foreground on white background and |
| @@ -1605,7 +1388,6 @@ current theme. However, this, or any non-standard values, can result in | |||
| 1605 | poor contrast for documents which aren't simply black text on white | 1388 | poor contrast for documents which aren't simply black text on white |
| 1606 | background. | 1389 | background. |
| 1607 | 1390 | ||
| 1608 | --- | ||
| 1609 | *** DocView buffers now display a new tool bar. | 1391 | *** DocView buffers now display a new tool bar. |
| 1610 | This tool bar contains options for searching and navigating within the | 1392 | This tool bar contains options for searching and navigating within the |
| 1611 | document, replacing the incompatible items for incremental search and | 1393 | document, replacing the incompatible items for incremental search and |
| @@ -1613,12 +1395,10 @@ editing within the default tool bar displayed in the past. | |||
| 1613 | 1395 | ||
| 1614 | ** Shortdoc | 1396 | ** Shortdoc |
| 1615 | 1397 | ||
| 1616 | +++ | ||
| 1617 | *** New function 'shortdoc-function-examples'. | 1398 | *** New function 'shortdoc-function-examples'. |
| 1618 | This function returns examples of use of a given Emacs Lisp function | 1399 | This function returns examples of use of a given Emacs Lisp function |
| 1619 | from the available shortdoc information. | 1400 | from the available shortdoc information. |
| 1620 | 1401 | ||
| 1621 | +++ | ||
| 1622 | *** New function 'shortdoc-help-fns-examples-function'. | 1402 | *** New function 'shortdoc-help-fns-examples-function'. |
| 1623 | This function inserts into the current buffer examples of use of a | 1403 | This function inserts into the current buffer examples of use of a |
| 1624 | given Emacs Lisp function, which it gleans from the shortdoc | 1404 | given Emacs Lisp function, which it gleans from the shortdoc |
| @@ -1631,24 +1411,20 @@ following to your init file: | |||
| 1631 | 1411 | ||
| 1632 | ** Package | 1412 | ** Package |
| 1633 | 1413 | ||
| 1634 | --- | ||
| 1635 | *** New user option 'package-vc-register-as-project'. | 1414 | *** New user option 'package-vc-register-as-project'. |
| 1636 | When non-nil, 'package-vc-install' and 'package-vc-checkout' will | 1415 | When non-nil, 'package-vc-install' and 'package-vc-checkout' will |
| 1637 | automatically register every package they install as a project, that you | 1416 | automatically register every package they install as a project, that you |
| 1638 | can quickly select using 'project-switch-project' ('C-x p p'). Default | 1417 | can quickly select using 'project-switch-project' ('C-x p p'). Default |
| 1639 | is t. | 1418 | is t. |
| 1640 | 1419 | ||
| 1641 | --- | ||
| 1642 | *** New user option 'package-vc-allow-build-commands'. | 1420 | *** New user option 'package-vc-allow-build-commands'. |
| 1643 | Controls for which packages Emacs runs extra build commands when | 1421 | Controls for which packages Emacs runs extra build commands when |
| 1644 | installing directly from the package VCS repository. | 1422 | installing directly from the package VCS repository. |
| 1645 | 1423 | ||
| 1646 | --- | ||
| 1647 | *** New command 'package-vc-log-incoming'. | 1424 | *** New command 'package-vc-log-incoming'. |
| 1648 | This commands displays incoming changes for a VC package without | 1425 | This commands displays incoming changes for a VC package without |
| 1649 | modifying the current checkout. | 1426 | modifying the current checkout. |
| 1650 | 1427 | ||
| 1651 | --- | ||
| 1652 | *** New command to start an inferior Emacs loading only specific packages. | 1428 | *** New command to start an inferior Emacs loading only specific packages. |
| 1653 | The new command 'package-isolate' will start a new Emacs process, as | 1429 | The new command 'package-isolate' will start a new Emacs process, as |
| 1654 | a sub-process of Emacs where you invoke the command, in a way that | 1430 | a sub-process of Emacs where you invoke the command, in a way that |
| @@ -1659,29 +1435,24 @@ in a clean environment. | |||
| 1659 | 1435 | ||
| 1660 | ** Flymake | 1436 | ** Flymake |
| 1661 | 1437 | ||
| 1662 | +++ | ||
| 1663 | *** New user option 'flymake-indicator-type'. | 1438 | *** New user option 'flymake-indicator-type'. |
| 1664 | This controls which error indicator type Flymake should use in the | 1439 | This controls which error indicator type Flymake should use in the |
| 1665 | current buffer. Depending on your preference, this can either use | 1440 | current buffer. Depending on your preference, this can either use |
| 1666 | fringes or margins for indicating errors, the default is 'margins'. | 1441 | fringes or margins for indicating errors, the default is 'margins'. |
| 1667 | 1442 | ||
| 1668 | +++ | ||
| 1669 | *** New user option 'flymake-margin-indicators-string'. | 1443 | *** New user option 'flymake-margin-indicators-string'. |
| 1670 | It controls, for each error type, the string and its face to display as | 1444 | It controls, for each error type, the string and its face to display as |
| 1671 | the margin indicator. | 1445 | the margin indicator. |
| 1672 | 1446 | ||
| 1673 | +++ | ||
| 1674 | *** New user option 'flymake-autoresize-margins'. | 1447 | *** New user option 'flymake-autoresize-margins'. |
| 1675 | If non-nil (the default), Flymake will resize the margins when | 1448 | If non-nil (the default), Flymake will resize the margins when |
| 1676 | 'flymake-mode' is turned on or off. | 1449 | 'flymake-mode' is turned on or off. |
| 1677 | Only relevant if 'flymake-indicator-type' is set to 'margins'. | 1450 | Only relevant if 'flymake-indicator-type' is set to 'margins'. |
| 1678 | 1451 | ||
| 1679 | +++ | ||
| 1680 | *** New user option 'flymake-margin-indicator-position'. | 1452 | *** New user option 'flymake-margin-indicator-position'. |
| 1681 | It controls whether to use margins for margin indicators, and which | 1453 | It controls whether to use margins for margin indicators, and which |
| 1682 | margin (left or right) to use. Default is to use the left margin. | 1454 | margin (left or right) to use. Default is to use the left margin. |
| 1683 | 1455 | ||
| 1684 | +++ | ||
| 1685 | *** New user option 'flymake-show-diagnostics-at-end-of-line'. | 1456 | *** New user option 'flymake-show-diagnostics-at-end-of-line'. |
| 1686 | When non-nil, Flymake shows summarized descriptions of diagnostics at | 1457 | When non-nil, Flymake shows summarized descriptions of diagnostics at |
| 1687 | the end of the line. Depending on your preference, this can either be | 1458 | the end of the line. Depending on your preference, this can either be |
| @@ -1691,13 +1462,11 @@ mouse to consult an error message. Default is nil. | |||
| 1691 | 1462 | ||
| 1692 | ** Flyspell | 1463 | ** Flyspell |
| 1693 | 1464 | ||
| 1694 | +++ | ||
| 1695 | *** New user option 'flyspell-check-changes'. | 1465 | *** New user option 'flyspell-check-changes'. |
| 1696 | When non-nil, Flyspell mode spell-checks only words that you edited; it | 1466 | When non-nil, Flyspell mode spell-checks only words that you edited; it |
| 1697 | does not check unedited words just because you move point across them. | 1467 | does not check unedited words just because you move point across them. |
| 1698 | Default is nil. | 1468 | Default is nil. |
| 1699 | 1469 | ||
| 1700 | --- | ||
| 1701 | ** JS mode. | 1470 | ** JS mode. |
| 1702 | The binding 'M-.' has been removed from the major mode keymaps in | 1471 | The binding 'M-.' has been removed from the major mode keymaps in |
| 1703 | 'js-mode' and 'js-ts-mode', having it default to the global binding | 1472 | 'js-mode' and 'js-ts-mode', having it default to the global binding |
| @@ -1705,7 +1474,6 @@ which calls 'xref-find-definitions'. If the previous one worked | |||
| 1705 | better for you, use 'define-key' in your init script to bind | 1474 | better for you, use 'define-key' in your init script to bind |
| 1706 | 'js-find-symbol' to that combination again. | 1475 | 'js-find-symbol' to that combination again. |
| 1707 | 1476 | ||
| 1708 | --- | ||
| 1709 | ** Json mode. | 1477 | ** Json mode. |
| 1710 | 'js-json-mode' does not derive from 'js-mode' any more so as not | 1478 | 'js-json-mode' does not derive from 'js-mode' any more so as not |
| 1711 | to confuse tools like Eglot or YASnippet into thinking that those | 1479 | to confuse tools like Eglot or YASnippet into thinking that those |
| @@ -1713,7 +1481,6 @@ buffers contain Javascript code. | |||
| 1713 | 1481 | ||
| 1714 | ** Python mode | 1482 | ** Python mode |
| 1715 | 1483 | ||
| 1716 | --- | ||
| 1717 | *** New user option 'python-indent-block-paren-deeper'. | 1484 | *** New user option 'python-indent-block-paren-deeper'. |
| 1718 | If non-nil, increase the indentation of the lines inside parens in a | 1485 | If non-nil, increase the indentation of the lines inside parens in a |
| 1719 | header of a block when they are indented to the same level as the body | 1486 | header of a block when they are indented to the same level as the body |
| @@ -1731,19 +1498,16 @@ instead of: | |||
| 1731 | 1498 | ||
| 1732 | Default is nil. | 1499 | Default is nil. |
| 1733 | 1500 | ||
| 1734 | --- | ||
| 1735 | *** New user option 'python-interpreter-args'. | 1501 | *** New user option 'python-interpreter-args'. |
| 1736 | This allows the user to specify command line arguments to the non | 1502 | This allows the user to specify command line arguments to the non |
| 1737 | interactive Python interpreter specified by 'python-interpreter'. | 1503 | interactive Python interpreter specified by 'python-interpreter'. |
| 1738 | 1504 | ||
| 1739 | --- | ||
| 1740 | *** New function 'python-shell-send-block'. | 1505 | *** New function 'python-shell-send-block'. |
| 1741 | It sends the python block delimited by 'python-nav-beginning-of-block' | 1506 | It sends the python block delimited by 'python-nav-beginning-of-block' |
| 1742 | and 'python-nav-end-of-block' to the inferior Python process. | 1507 | and 'python-nav-end-of-block' to the inferior Python process. |
| 1743 | 1508 | ||
| 1744 | ** Inferior Python mode | 1509 | ** Inferior Python mode |
| 1745 | 1510 | ||
| 1746 | --- | ||
| 1747 | *** Default value of 'python-shell-compilation-regexp-alist' is changed. | 1511 | *** Default value of 'python-shell-compilation-regexp-alist' is changed. |
| 1748 | Support for Python's ExceptionGroup has been added, so in the Python | 1512 | Support for Python's ExceptionGroup has been added, so in the Python |
| 1749 | shell, the line indicating the source of an error in the error messages | 1513 | shell, the line indicating the source of an error in the error messages |
| @@ -1751,13 +1515,11 @@ from ExceptionGroup will be recognized as well. | |||
| 1751 | 1515 | ||
| 1752 | ** Eldoc | 1516 | ** Eldoc |
| 1753 | 1517 | ||
| 1754 | --- | ||
| 1755 | *** 'eldoc' no longer truncates to a single line by default. | 1518 | *** 'eldoc' no longer truncates to a single line by default. |
| 1756 | Previously, the entire docstring was not available to eldoc, which made | 1519 | Previously, the entire docstring was not available to eldoc, which made |
| 1757 | 'eldoc-echo-area-use-multiline-p' ineffective. The old behavior may be | 1520 | 'eldoc-echo-area-use-multiline-p' ineffective. The old behavior may be |
| 1758 | kept by customizing 'eldoc-echo-area-use-multiline-p'. | 1521 | kept by customizing 'eldoc-echo-area-use-multiline-p'. |
| 1759 | 1522 | ||
| 1760 | --- | ||
| 1761 | ** Scheme mode. | 1523 | ** Scheme mode. |
| 1762 | Scheme mode now handles the regular expression literal '#/regexp/' that | 1524 | Scheme mode now handles the regular expression literal '#/regexp/' that |
| 1763 | is available in some Scheme implementations. | 1525 | is available in some Scheme implementations. |
| @@ -1765,47 +1527,39 @@ Also, it should now handle nested sexp-comments. | |||
| 1765 | 1527 | ||
| 1766 | ** Use package | 1528 | ** Use package |
| 1767 | 1529 | ||
| 1768 | +++ | ||
| 1769 | *** New ':vc' keyword. | 1530 | *** New ':vc' keyword. |
| 1770 | This keyword enables the user to install packages using package-vc.el. | 1531 | This keyword enables the user to install packages using package-vc.el. |
| 1771 | 1532 | ||
| 1772 | +++ | ||
| 1773 | *** New user option 'use-package-vc-prefer-newest'. | 1533 | *** New user option 'use-package-vc-prefer-newest'. |
| 1774 | If non-nil, always install the newest commit of a package when using the | 1534 | If non-nil, always install the newest commit of a package when using the |
| 1775 | ':vc' keyword rather than its stable release. Default is nil. | 1535 | ':vc' keyword rather than its stable release. Default is nil. |
| 1776 | 1536 | ||
| 1777 | ** Gnus | 1537 | ** Gnus |
| 1778 | 1538 | ||
| 1779 | +++ | ||
| 1780 | *** New backend 'nnfeed'. | 1539 | *** New backend 'nnfeed'. |
| 1781 | This allows backend developers to easily create new backends for web | 1540 | This allows backend developers to easily create new backends for web |
| 1782 | feeds, as inheriting backends of 'nnfeed'. | 1541 | feeds, as inheriting backends of 'nnfeed'. |
| 1783 | 1542 | ||
| 1784 | +++ | ||
| 1785 | *** New backend 'nnatom'. | 1543 | *** New backend 'nnatom'. |
| 1786 | This allow users to add Atom Syndication Format feeds to Gnus as | 1544 | This allow users to add Atom Syndication Format feeds to Gnus as |
| 1787 | servers. | 1545 | servers. |
| 1788 | 1546 | ||
| 1789 | --- | ||
| 1790 | *** The 'nnweb-type' option 'gmane' has been removed. | 1547 | *** The 'nnweb-type' option 'gmane' has been removed. |
| 1791 | The gmane.org website is, sadly, down since a number of years with no | 1548 | The gmane.org website is, sadly, down since a number of years with no |
| 1792 | prospect of it coming back. Therefore, it is no longer valid to set | 1549 | prospect of it coming back. Therefore, it is no longer valid to set |
| 1793 | the server variable 'nnweb-type' to 'gmane'. | 1550 | the server variable 'nnweb-type' to 'gmane'. |
| 1794 | 1551 | ||
| 1795 | --- | ||
| 1796 | *** New user option 'gnus-mode-line-logo'. | 1552 | *** New user option 'gnus-mode-line-logo'. |
| 1797 | This allows the user to either disable the display of any logo or | 1553 | This allows the user to either disable the display of any logo or |
| 1798 | specify which logo will be displayed as part of the | 1554 | specify which logo will be displayed as part of the |
| 1799 | buffer-identification in the mode-line of Gnus buffers. | 1555 | buffer-identification in the mode-line of Gnus buffers. |
| 1800 | 1556 | ||
| 1801 | --- | ||
| 1802 | *** 'gnus-summary-limit-to-age' now counts days since midnight. | 1557 | *** 'gnus-summary-limit-to-age' now counts days since midnight. |
| 1803 | "Less than 1 day" now means "since last midnight", rather than "less | 1558 | "Less than 1 day" now means "since last midnight", rather than "less |
| 1804 | than 24 hours old". | 1559 | than 24 hours old". |
| 1805 | 1560 | ||
| 1806 | ** Rmail | 1561 | ** Rmail |
| 1807 | 1562 | ||
| 1808 | --- | ||
| 1809 | *** New commands for reading mailing lists. | 1563 | *** New commands for reading mailing lists. |
| 1810 | The new Rmail commands 'rmail-mailing-list-post', | 1564 | The new Rmail commands 'rmail-mailing-list-post', |
| 1811 | 'rmail-mailing-list-unsubscribe', 'rmail-mailing-list-help', and | 1565 | 'rmail-mailing-list-unsubscribe', 'rmail-mailing-list-help', and |
| @@ -1816,7 +1570,6 @@ delivered. | |||
| 1816 | 1570 | ||
| 1817 | ** Dictionary | 1571 | ** Dictionary |
| 1818 | 1572 | ||
| 1819 | --- | ||
| 1820 | *** New user option 'dictionary-search-interface'. | 1573 | *** New user option 'dictionary-search-interface'. |
| 1821 | Controls how the 'dictionary-search' command prompts for and displays | 1574 | Controls how the 'dictionary-search' command prompts for and displays |
| 1822 | dictionary definitions. Customize this user option to 'help' to have | 1575 | dictionary definitions. Customize this user option to 'help' to have |
| @@ -1824,13 +1577,11 @@ dictionary definitions. Customize this user option to 'help' to have | |||
| 1824 | provide dictionary-based minibuffer completion for word selection. | 1577 | provide dictionary-based minibuffer completion for word selection. |
| 1825 | Default is nil, which means to use a "*Dictionary*" buffer. | 1578 | Default is nil, which means to use a "*Dictionary*" buffer. |
| 1826 | 1579 | ||
| 1827 | --- | ||
| 1828 | *** New user option 'dictionary-read-word-prompt'. | 1580 | *** New user option 'dictionary-read-word-prompt'. |
| 1829 | This allows the user to customize the prompt that is used by | 1581 | This allows the user to customize the prompt that is used by |
| 1830 | 'dictionary-search' when asking for a word to search in the | 1582 | 'dictionary-search' when asking for a word to search in the |
| 1831 | dictionaries. | 1583 | dictionaries. |
| 1832 | 1584 | ||
| 1833 | --- | ||
| 1834 | *** New user option 'dictionary-display-definition-function'. | 1585 | *** New user option 'dictionary-display-definition-function'. |
| 1835 | This allows the user to customize the way in which 'dictionary-search' | 1586 | This allows the user to customize the way in which 'dictionary-search' |
| 1836 | displays word definitions. If non-nil, this user option should be set | 1587 | displays word definitions. If non-nil, this user option should be set |
| @@ -1840,7 +1591,6 @@ dictionary server. The new function | |||
| 1840 | the definition in a "*Help*" buffer, instead of the default | 1591 | the definition in a "*Help*" buffer, instead of the default |
| 1841 | "*Dictionary*" buffer. | 1592 | "*Dictionary*" buffer. |
| 1842 | 1593 | ||
| 1843 | --- | ||
| 1844 | *** New user option 'dictionary-read-word-function'. | 1594 | *** New user option 'dictionary-read-word-function'. |
| 1845 | This allows the user to customize the way in which 'dictionary-search' | 1595 | This allows the user to customize the way in which 'dictionary-search' |
| 1846 | prompts for a word to search in the dictionary. This user option | 1596 | prompts for a word to search in the dictionary. This user option |
| @@ -1849,7 +1599,6 @@ returns it as a string. The new function | |||
| 1849 | 'dictionary-completing-read-word' can be used to prompt with | 1599 | 'dictionary-completing-read-word' can be used to prompt with |
| 1850 | completion based on dictionary matches. | 1600 | completion based on dictionary matches. |
| 1851 | 1601 | ||
| 1852 | --- | ||
| 1853 | *** New user option 'dictionary-read-dictionary-function'. | 1602 | *** New user option 'dictionary-read-dictionary-function'. |
| 1854 | This allows the user to customize the way in which 'dictionary-search' | 1603 | This allows the user to customize the way in which 'dictionary-search' |
| 1855 | prompts for a dictionary to search in. This user option should be set | 1604 | prompts for a dictionary to search in. This user option should be set |
| @@ -1858,7 +1607,6 @@ name as a string. The new function | |||
| 1858 | 'dictionary-completing-read-dictionary' can be used to prompt with | 1607 | 'dictionary-completing-read-dictionary' can be used to prompt with |
| 1859 | completion based on dictionaries that the server supports. | 1608 | completion based on dictionaries that the server supports. |
| 1860 | 1609 | ||
| 1861 | --- | ||
| 1862 | *** The default value of 'dictionary-tooltip-dictionary' has changed. | 1610 | *** The default value of 'dictionary-tooltip-dictionary' has changed. |
| 1863 | The new default value is t, which means use the same dictionary as the | 1611 | The new default value is t, which means use the same dictionary as the |
| 1864 | value of 'dictionary-default-dictionary'. The previous default value | 1612 | value of 'dictionary-default-dictionary'. The previous default value |
| @@ -1867,52 +1615,43 @@ the mode was turned on. | |||
| 1867 | 1615 | ||
| 1868 | ** Pp | 1616 | ** Pp |
| 1869 | 1617 | ||
| 1870 | +++ | ||
| 1871 | *** New 'pp-default-function' user option replaces 'pp-use-max-width'. | 1618 | *** New 'pp-default-function' user option replaces 'pp-use-max-width'. |
| 1872 | Its default value is 'pp-fill', a new default pretty-printing function, | 1619 | Its default value is 'pp-fill', a new default pretty-printing function, |
| 1873 | which tries to obey 'fill-column'. | 1620 | which tries to obey 'fill-column'. |
| 1874 | 1621 | ||
| 1875 | --- | ||
| 1876 | *** 'pp-to-string' takes an additional PP-FUNCTION argument. | 1622 | *** 'pp-to-string' takes an additional PP-FUNCTION argument. |
| 1877 | This argument specifies the prettifying algorithm to use. | 1623 | This argument specifies the prettifying algorithm to use. |
| 1878 | 1624 | ||
| 1879 | --- | ||
| 1880 | *** 'pp' and 'pp-to-string' now always include a terminating newline. | 1625 | *** 'pp' and 'pp-to-string' now always include a terminating newline. |
| 1881 | In the past they included a terminating newline in most cases but not all. | 1626 | In the past they included a terminating newline in most cases but not all. |
| 1882 | 1627 | ||
| 1883 | ** Emacs Lisp mode | 1628 | ** Emacs Lisp mode |
| 1884 | 1629 | ||
| 1885 | +++ | ||
| 1886 | *** 'elisp-flymake-byte-compile' is disabled for untrusted files. | 1630 | *** 'elisp-flymake-byte-compile' is disabled for untrusted files. |
| 1887 | For security reasons, this backend can be used only in those files | 1631 | For security reasons, this backend can be used only in those files |
| 1888 | specified as trusted according to 'trusted-content' and emits an | 1632 | specified as trusted according to 'trusted-content' and emits an |
| 1889 | "untrusted content" warning otherwise. | 1633 | "untrusted content" warning otherwise. |
| 1890 | This fixes CVE-2024-53920. | 1634 | This fixes CVE-2024-53920. |
| 1891 | 1635 | ||
| 1892 | --- | ||
| 1893 | *** ',@' now has 'prefix' syntax. | 1636 | *** ',@' now has 'prefix' syntax. |
| 1894 | Previously, the '@' character, which normally has 'symbol' syntax, | 1637 | Previously, the '@' character, which normally has 'symbol' syntax, |
| 1895 | would combine with a following Lisp symbol and interfere with symbol | 1638 | would combine with a following Lisp symbol and interfere with symbol |
| 1896 | searching. | 1639 | searching. |
| 1897 | 1640 | ||
| 1898 | +++ | ||
| 1899 | *** 'emacs-lisp-docstring-fill-column' now defaults to 72. | 1641 | *** 'emacs-lisp-docstring-fill-column' now defaults to 72. |
| 1900 | It was previously 65. The new default formats documentation strings to | 1642 | It was previously 65. The new default formats documentation strings to |
| 1901 | fit on fewer lines without negatively impacting readability. | 1643 | fit on fewer lines without negatively impacting readability. |
| 1902 | 1644 | ||
| 1903 | ** CPerl mode | 1645 | ** CPerl mode |
| 1904 | 1646 | ||
| 1905 | --- | ||
| 1906 | *** Subroutine signatures are now supported. | 1647 | *** Subroutine signatures are now supported. |
| 1907 | CPerl mode fontifies subroutine signatures like variable declarations | 1648 | CPerl mode fontifies subroutine signatures like variable declarations |
| 1908 | which makes them visually distinct from subroutine prototypes. | 1649 | which makes them visually distinct from subroutine prototypes. |
| 1909 | 1650 | ||
| 1910 | --- | ||
| 1911 | *** Syntax of Perl up to version 5.40 is supported. | 1651 | *** Syntax of Perl up to version 5.40 is supported. |
| 1912 | CPerl mode supports the new keywords for exception handling and the | 1652 | CPerl mode supports the new keywords for exception handling and the |
| 1913 | object oriented syntax which were added in Perl 5.36, 5.38 and 5.40. | 1653 | object oriented syntax which were added in Perl 5.36, 5.38 and 5.40. |
| 1914 | 1654 | ||
| 1915 | --- | ||
| 1916 | *** New user option 'cperl-fontify-trailer'. | 1655 | *** New user option 'cperl-fontify-trailer'. |
| 1917 | This user option takes the values 'perl-code' or 'comment' and treats | 1656 | This user option takes the values 'perl-code' or 'comment' and treats |
| 1918 | text after an "__END__" or "__DATA__" token accordingly. The default | 1657 | text after an "__END__" or "__DATA__" token accordingly. The default |
| @@ -1920,32 +1659,27 @@ value of 'perl-code' is useful for trailing POD and for AutoSplit | |||
| 1920 | modules, the value 'comment' makes CPerl mode treat trailers as | 1659 | modules, the value 'comment' makes CPerl mode treat trailers as |
| 1921 | comment, like Perl mode does. | 1660 | comment, like Perl mode does. |
| 1922 | 1661 | ||
| 1923 | --- | ||
| 1924 | *** New command 'cperl-file-style'. | 1662 | *** New command 'cperl-file-style'. |
| 1925 | This command sets the indentation style for the current buffer. To | 1663 | This command sets the indentation style for the current buffer. To |
| 1926 | change the default style, either use the user option with the same name | 1664 | change the default style, either use the user option with the same name |
| 1927 | or use the command 'cperl-set-style'. | 1665 | or use the command 'cperl-set-style'. |
| 1928 | 1666 | ||
| 1929 | --- | ||
| 1930 | *** New minor mode 'cperl-extra-paired-delimiters-mode'. | 1667 | *** New minor mode 'cperl-extra-paired-delimiters-mode'. |
| 1931 | Perl 5.36 and newer allows using more than 200 non-ASCII paired | 1668 | Perl 5.36 and newer allows using more than 200 non-ASCII paired |
| 1932 | delimiters for quote-like constructs, e.g. "q«text»". Use this minor | 1669 | delimiters for quote-like constructs, e.g. "q«text»". Use this minor |
| 1933 | mode in buffers where this feature is activated. | 1670 | mode in buffers where this feature is activated. |
| 1934 | 1671 | ||
| 1935 | --- | ||
| 1936 | *** Commands using the Perl Info manual are obsolete. | 1672 | *** Commands using the Perl Info manual are obsolete. |
| 1937 | The Perl documentation in Info format is no longer distributed with | 1673 | The Perl documentation in Info format is no longer distributed with |
| 1938 | Perl or on CPAN since more than 10 years. Perl documentation can be | 1674 | Perl or on CPAN since more than 10 years. Perl documentation can be |
| 1939 | read with 'cperl-perldoc' instead. | 1675 | read with 'cperl-perldoc' instead. |
| 1940 | 1676 | ||
| 1941 | --- | ||
| 1942 | *** Highlighting trailing whitespace has been removed. | 1677 | *** Highlighting trailing whitespace has been removed. |
| 1943 | The user option 'cperl-invalid-face' is now obsolete, and does | 1678 | The user option 'cperl-invalid-face' is now obsolete, and does |
| 1944 | nothing. See the user option 'show-trailing-whitespace' instead. | 1679 | nothing. See the user option 'show-trailing-whitespace' instead. |
| 1945 | 1680 | ||
| 1946 | ** Emacs Sessions (Desktop) | 1681 | ** Emacs Sessions (Desktop) |
| 1947 | 1682 | ||
| 1948 | +++ | ||
| 1949 | *** Restoring buffers visiting remote files can now time out. | 1683 | *** Restoring buffers visiting remote files can now time out. |
| 1950 | When a buffer is restored which visits a remote file, the restoration | 1684 | When a buffer is restored which visits a remote file, the restoration |
| 1951 | of the session could hang if the remote host is off-line or slow to | 1685 | of the session could hang if the remote host is off-line or slow to |
| @@ -1956,7 +1690,6 @@ desktop restoration to continue. | |||
| 1956 | 1690 | ||
| 1957 | ** Recentf | 1691 | ** Recentf |
| 1958 | 1692 | ||
| 1959 | +++ | ||
| 1960 | *** Checking recent remote files can now time out. | 1693 | *** Checking recent remote files can now time out. |
| 1961 | Similarly to buffer restoration by Desktop, 'recentf-mode' checking | 1694 | Similarly to buffer restoration by Desktop, 'recentf-mode' checking |
| 1962 | of the accessibility of remote files can now time out if | 1695 | of the accessibility of remote files can now time out if |
| @@ -1964,19 +1697,16 @@ of the accessibility of remote files can now time out if | |||
| 1964 | 1697 | ||
| 1965 | ** Image Dired | 1698 | ** Image Dired |
| 1966 | 1699 | ||
| 1967 | +++ | ||
| 1968 | *** New user option 'image-dired-thumb-naming'. | 1700 | *** New user option 'image-dired-thumb-naming'. |
| 1969 | You can now configure how thumbnails are named using this option. | 1701 | You can now configure how thumbnails are named using this option. |
| 1970 | 1702 | ||
| 1971 | ** ERT | 1703 | ** ERT |
| 1972 | 1704 | ||
| 1973 | +++ | ||
| 1974 | *** New macro 'skip-when' to skip 'ert-deftest' tests. | 1705 | *** New macro 'skip-when' to skip 'ert-deftest' tests. |
| 1975 | This can help to avoid some awkward skip conditions. For example | 1706 | This can help to avoid some awkward skip conditions. For example |
| 1976 | '(skip-unless (not noninteractive))' can be changed to the easier | 1707 | '(skip-unless (not noninteractive))' can be changed to the easier |
| 1977 | to read '(skip-when noninteractive)'. | 1708 | to read '(skip-when noninteractive)'. |
| 1978 | 1709 | ||
| 1979 | +++ | ||
| 1980 | *** Syntax highlighting unit testing support. | 1710 | *** Syntax highlighting unit testing support. |
| 1981 | An ERT extension ('ert-font-lock') now provides support for face | 1711 | An ERT extension ('ert-font-lock') now provides support for face |
| 1982 | assignment unit testing. For more information, see the "(ert) Syntax | 1712 | assignment unit testing. For more information, see the "(ert) Syntax |
| @@ -1984,21 +1714,18 @@ Highlighting Tests" node in the ERT manual. | |||
| 1984 | 1714 | ||
| 1985 | ** Socks | 1715 | ** Socks |
| 1986 | 1716 | ||
| 1987 | +++ | ||
| 1988 | *** Socks supports version 4a. | 1717 | *** Socks supports version 4a. |
| 1989 | The 'socks-server' user option accepts '4a' as a value for its version | 1718 | The 'socks-server' user option accepts '4a' as a value for its version |
| 1990 | field. | 1719 | field. |
| 1991 | 1720 | ||
| 1992 | ** Edmacro | 1721 | ** Edmacro |
| 1993 | 1722 | ||
| 1994 | +++ | ||
| 1995 | *** New command 'edmacro-set-macro-to-region-lines'. | 1723 | *** New command 'edmacro-set-macro-to-region-lines'. |
| 1996 | Bound to 'C-c C-r', this command replaces the macro text with the | 1724 | Bound to 'C-c C-r', this command replaces the macro text with the |
| 1997 | lines of the region. If needed, the region is extended to include | 1725 | lines of the region. If needed, the region is extended to include |
| 1998 | whole lines. If the region ends at the beginning of a line, that last | 1726 | whole lines. If the region ends at the beginning of a line, that last |
| 1999 | line is excluded. | 1727 | line is excluded. |
| 2000 | 1728 | ||
| 2001 | +++ | ||
| 2002 | *** New user option 'edmacro-reverse-macro-lines'. | 1729 | *** New user option 'edmacro-reverse-macro-lines'. |
| 2003 | When this is non-nil, the lines of key sequences are displayed with | 1730 | When this is non-nil, the lines of key sequences are displayed with |
| 2004 | the most recent line first. This is can be useful when working with | 1731 | the most recent line first. This is can be useful when working with |
| @@ -2006,7 +1733,6 @@ macros with many lines, such as from 'kmacro-edit-lossage'. | |||
| 2006 | 1733 | ||
| 2007 | ** Calc | 1734 | ** Calc |
| 2008 | 1735 | ||
| 2009 | +++ | ||
| 2010 | *** Calc parses fractions written using U+2044 FRACTION SLASH. | 1736 | *** Calc parses fractions written using U+2044 FRACTION SLASH. |
| 2011 | Fractions of the form "123⁄456" are handled as if written "123:456". | 1737 | Fractions of the form "123⁄456" are handled as if written "123:456". |
| 2012 | Note in particular the difference in behavior from U+2215 DIVISION SLASH | 1738 | Note in particular the difference in behavior from U+2215 DIVISION SLASH |
| @@ -2018,7 +1744,6 @@ was never mentioned in the NEWS, or even the Calc manual.) | |||
| 2018 | 1744 | ||
| 2019 | ** IELM | 1745 | ** IELM |
| 2020 | 1746 | ||
| 2021 | --- | ||
| 2022 | *** IELM now remembers input history between sessions. | 1747 | *** IELM now remembers input history between sessions. |
| 2023 | The new user option 'ielm-history-file-name' is the name of the file | 1748 | The new user option 'ielm-history-file-name' is the name of the file |
| 2024 | where IELM input history will be saved. Customize it to nil to revert | 1749 | where IELM input history will be saved. Customize it to nil to revert |
| @@ -2026,7 +1751,6 @@ to the old behavior of not remembering input history between sessions. | |||
| 2026 | 1751 | ||
| 2027 | ** EasyPG | 1752 | ** EasyPG |
| 2028 | 1753 | ||
| 2029 | +++ | ||
| 2030 | *** New user option 'epa-keys-select-method'. | 1754 | *** New user option 'epa-keys-select-method'. |
| 2031 | This allows the user to customize the key selection method, which can be | 1755 | This allows the user to customize the key selection method, which can be |
| 2032 | either by using a pop-up buffer or from the minibuffer. The pop-up | 1756 | either by using a pop-up buffer or from the minibuffer. The pop-up |
| @@ -2034,61 +1758,52 @@ buffer method is the default, which preserves previous behavior. | |||
| 2034 | 1758 | ||
| 2035 | ** Widget | 1759 | ** Widget |
| 2036 | 1760 | ||
| 2037 | +++ | ||
| 2038 | *** New face 'widget-unselected'. | 1761 | *** New face 'widget-unselected'. |
| 2039 | Customize this face to a non-default value to visually distinguish the | 1762 | Customize this face to a non-default value to visually distinguish the |
| 2040 | labels of unselected active radio-button or checkbox widgets from the | 1763 | labels of unselected active radio-button or checkbox widgets from the |
| 2041 | labels of unselected inactive widgets (the default value inherits from | 1764 | labels of unselected inactive widgets (the default value inherits from |
| 2042 | the 'widget-inactive' face). | 1765 | the 'widget-inactive' face). |
| 2043 | 1766 | ||
| 2044 | +++ | ||
| 2045 | *** New user option 'widget-skip-inactive'. | 1767 | *** New user option 'widget-skip-inactive'. |
| 2046 | If non-nil, moving point forward or backward between widgets by typing | 1768 | If non-nil, moving point forward or backward between widgets by typing |
| 2047 | 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. | 1769 | 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. |
| 2048 | 1770 | ||
| 2049 | ** Ruby mode | 1771 | ** Ruby mode |
| 2050 | 1772 | ||
| 2051 | --- | ||
| 2052 | *** New user option 'ruby-rubocop-use-bundler'. | 1773 | *** New user option 'ruby-rubocop-use-bundler'. |
| 2053 | By default it retains the previous behavior: read the contents of | 1774 | By default it retains the previous behavior: read the contents of |
| 2054 | Gemfile and act accordingly. But you can also set it to t or nil to | 1775 | Gemfile and act accordingly. But you can also set it to t or nil to |
| 2055 | skip checking the Gemfile. | 1776 | skip checking the Gemfile. |
| 2056 | 1777 | ||
| 2057 | --- | ||
| 2058 | *** New user option 'ruby-bracketed-args-indent'. | 1778 | *** New user option 'ruby-bracketed-args-indent'. |
| 2059 | When it is set to nil, multiple consecutive open braces/brackets/parens | 1779 | When it is set to nil, multiple consecutive open braces/brackets/parens |
| 2060 | result in only one additional indentation level. Default is t. | 1780 | result in only one additional indentation level. Default is t. |
| 2061 | 1781 | ||
| 2062 | ** Thingatpt | 1782 | ** Thingatpt |
| 2063 | 1783 | ||
| 2064 | --- | ||
| 2065 | *** New variables for providing custom thingatpt implementations. | 1784 | *** New variables for providing custom thingatpt implementations. |
| 2066 | The new variables 'bounds-of-thing-at-point-provider-alist' and | 1785 | The new variables 'bounds-of-thing-at-point-provider-alist' and |
| 2067 | 'forward-thing-provider-alist' now allow defining custom implementations | 1786 | 'forward-thing-provider-alist' now allow defining custom implementations |
| 2068 | of 'bounds-of-thing-at-point' and 'forward-thing', respectively. | 1787 | of 'bounds-of-thing-at-point' and 'forward-thing', respectively. |
| 2069 | 1788 | ||
| 2070 | --- | ||
| 2071 | *** New helper functions for text property-based thingatpt providers. | 1789 | *** New helper functions for text property-based thingatpt providers. |
| 2072 | The new helper functions 'thing-at-point-for-char-property', | 1790 | The new helper functions 'thing-at-point-for-char-property', |
| 2073 | 'bounds-of-thing-at-point-for-char-property', and | 1791 | 'bounds-of-thing-at-point-for-char-property', and |
| 2074 | 'forward-thing-for-char-property' can help to implement custom thingatpt | 1792 | 'forward-thing-for-char-property' can help to implement custom thingatpt |
| 2075 | providers for "things" that are defined by text properties. | 1793 | providers for "things" that are defined by text properties. |
| 2076 | 1794 | ||
| 2077 | --- | ||
| 2078 | *** 'bug-reference-mode' now supports 'thing-at-point'. | 1795 | *** 'bug-reference-mode' now supports 'thing-at-point'. |
| 2079 | Now, calling '(thing-at-point 'url)' when point is on a bug reference | 1796 | Now, calling '(thing-at-point 'url)' when point is on a bug reference |
| 2080 | will return the URL for that bug. | 1797 | will return the URL for that bug. |
| 2081 | 1798 | ||
| 2082 | ** Buffer-menu | 1799 | ** Buffer-menu |
| 2083 | 1800 | ||
| 2084 | --- | ||
| 2085 | *** New user option 'Buffer-menu-group-by'. | 1801 | *** New user option 'Buffer-menu-group-by'. |
| 2086 | It controls how buffers are divided into groups that are displayed with | 1802 | It controls how buffers are divided into groups that are displayed with |
| 2087 | headings using Outline minor mode. Using commands that mark buffers | 1803 | headings using Outline minor mode. Using commands that mark buffers |
| 2088 | on the outline heading line will mark all buffers in the outline. By | 1804 | on the outline heading line will mark all buffers in the outline. By |
| 2089 | default, no grouping is performed. | 1805 | default, no grouping is performed. |
| 2090 | 1806 | ||
| 2091 | +++ | ||
| 2092 | *** New command 'Buffer-menu-toggle-internal'. | 1807 | *** New command 'Buffer-menu-toggle-internal'. |
| 2093 | This command toggles the display of internal buffers in Buffer Menu mode; | 1808 | This command toggles the display of internal buffers in Buffer Menu mode; |
| 2094 | that is, buffers not visiting a file and whose names start with a space. | 1809 | that is, buffers not visiting a file and whose names start with a space. |
| @@ -2097,22 +1812,18 @@ in Buffer Menu mode. | |||
| 2097 | 1812 | ||
| 2098 | ** Miscellaneous | 1813 | ** Miscellaneous |
| 2099 | 1814 | ||
| 2100 | +++ | ||
| 2101 | *** New user option 'rcirc-log-time-format'. | 1815 | *** New user option 'rcirc-log-time-format'. |
| 2102 | This allows for rcirc logs to use a custom timestamp format, which the | 1816 | This allows for rcirc logs to use a custom timestamp format, which the |
| 2103 | chat buffers use by default. | 1817 | chat buffers use by default. |
| 2104 | 1818 | ||
| 2105 | --- | ||
| 2106 | *** 'ffap-lax-url' now defaults to nil. | 1819 | *** 'ffap-lax-url' now defaults to nil. |
| 2107 | Previously, it was set to t, but this broke remote file name detection. | 1820 | Previously, it was set to t, but this broke remote file name detection. |
| 2108 | 1821 | ||
| 2109 | --- | ||
| 2110 | *** More control on automatic update of Proced buffers. | 1822 | *** More control on automatic update of Proced buffers. |
| 2111 | The user option 'proced-auto-update-flag' can now be set to an | 1823 | The user option 'proced-auto-update-flag' can now be set to an |
| 2112 | additional value 'visible', which controls automatic updates of Proced | 1824 | additional value 'visible', which controls automatic updates of Proced |
| 2113 | buffers that are displayed in some window. | 1825 | buffers that are displayed in some window. |
| 2114 | 1826 | ||
| 2115 | --- | ||
| 2116 | *** nXML Mode now comes with schemas for Mono/.NET development. | 1827 | *** nXML Mode now comes with schemas for Mono/.NET development. |
| 2117 | The following new XML schemas are now supported: | 1828 | The following new XML schemas are now supported: |
| 2118 | - MSBuild project files | 1829 | - MSBuild project files |
| @@ -2123,48 +1834,39 @@ The following new XML schemas are now supported: | |||
| 2123 | - Nuget package specification file | 1834 | - Nuget package specification file |
| 2124 | - Nuget packages config file | 1835 | - Nuget packages config file |
| 2125 | 1836 | ||
| 2126 | --- | ||
| 2127 | *** color.el now supports the Oklab color representation. | 1837 | *** color.el now supports the Oklab color representation. |
| 2128 | 1838 | ||
| 2129 | +++ | ||
| 2130 | *** New user option 'xwidget-webkit-disable-javascript'. | 1839 | *** New user option 'xwidget-webkit-disable-javascript'. |
| 2131 | This allows disabling JavaScript in xwidget Webkit sessions. | 1840 | This allows disabling JavaScript in xwidget Webkit sessions. |
| 2132 | 1841 | ||
| 2133 | --- | ||
| 2134 | *** 'ls-lisp--insert-directory' supports more long options of 'ls'. | 1842 | *** 'ls-lisp--insert-directory' supports more long options of 'ls'. |
| 2135 | 'ls-lisp--insert-directory', the ls-lisp implementation of | 1843 | 'ls-lisp--insert-directory', the ls-lisp implementation of |
| 2136 | 'insert-directory', now supports the '--time=TIME' and '--sort=time' | 1844 | 'insert-directory', now supports the '--time=TIME' and '--sort=time' |
| 2137 | options of GNU 'ls'. | 1845 | options of GNU 'ls'. |
| 2138 | 1846 | ||
| 2139 | --- | ||
| 2140 | *** 'M-x ping' can now give additional flags to the 'ping' program. | 1847 | *** 'M-x ping' can now give additional flags to the 'ping' program. |
| 2141 | Typing 'C-u M-x ping' prompts first for the host, and then for the flags | 1848 | Typing 'C-u M-x ping' prompts first for the host, and then for the flags |
| 2142 | to give to the 'ping' command. | 1849 | to give to the 'ping' command. |
| 2143 | 1850 | ||
| 2144 | --- | ||
| 2145 | *** Webjump now assumes URIs are HTTPS instead of HTTP. | 1851 | *** Webjump now assumes URIs are HTTPS instead of HTTP. |
| 2146 | For links in 'webjump-sites' without an explicit URI scheme, it was | 1852 | For links in 'webjump-sites' without an explicit URI scheme, it was |
| 2147 | previously assumed that they should be prefixed with "http://". Such | 1853 | previously assumed that they should be prefixed with "http://". Such |
| 2148 | URIs are now prefixed with "https://" instead. | 1854 | URIs are now prefixed with "https://" instead. |
| 2149 | 1855 | ||
| 2150 | --- | ||
| 2151 | *** Added prefixes in titdic-cnv library. | 1856 | *** Added prefixes in titdic-cnv library. |
| 2152 | Most of the variables and functions in the file have been renamed to | 1857 | Most of the variables and functions in the file have been renamed to |
| 2153 | make sure they all use a 'tit-' namespace prefix. | 1858 | make sure they all use a 'tit-' namespace prefix. |
| 2154 | 1859 | ||
| 2155 | --- | ||
| 2156 | *** 'xref-revert-buffer' is now an alias of 'revert-buffer'. | 1860 | *** 'xref-revert-buffer' is now an alias of 'revert-buffer'. |
| 2157 | The Xref buffer now sets up 'revert-buffer-function' such that | 1861 | The Xref buffer now sets up 'revert-buffer-function' such that |
| 2158 | 'revert-buffer' behaves like 'xref-revert-buffer' did in previous Emacs | 1862 | 'revert-buffer' behaves like 'xref-revert-buffer' did in previous Emacs |
| 2159 | versions, and the latter is now an alias of the former. | 1863 | versions, and the latter is now an alias of the former. |
| 2160 | 1864 | ||
| 2161 | --- | ||
| 2162 | *** The Makefile browser is now obsolete. | 1865 | *** The Makefile browser is now obsolete. |
| 2163 | The command 'makefile-switch-to-browser' command is now obsolete, | 1866 | The command 'makefile-switch-to-browser' command is now obsolete, |
| 2164 | together with related commands used in the "*Macros and Targets*" | 1867 | together with related commands used in the "*Macros and Targets*" |
| 2165 | buffer. We recommend using an alternative like 'imenu' instead. | 1868 | buffer. We recommend using an alternative like 'imenu' instead. |
| 2166 | 1869 | ||
| 2167 | --- | ||
| 2168 | *** 'jsonrpc-default-request-timeout' is now a defcustom. | 1870 | *** 'jsonrpc-default-request-timeout' is now a defcustom. |
| 2169 | 1871 | ||
| 2170 | 1872 | ||
| @@ -2172,28 +1874,22 @@ buffer. We recommend using an alternative like 'imenu' instead. | |||
| 2172 | 1874 | ||
| 2173 | ** New major modes based on the tree-sitter library | 1875 | ** New major modes based on the tree-sitter library |
| 2174 | 1876 | ||
| 2175 | +++ | ||
| 2176 | *** New major mode 'elixir-ts-mode'. | 1877 | *** New major mode 'elixir-ts-mode'. |
| 2177 | A major mode based on the tree-sitter library for editing Elixir files. | 1878 | A major mode based on the tree-sitter library for editing Elixir files. |
| 2178 | 1879 | ||
| 2179 | +++ | ||
| 2180 | *** New major mode 'heex-ts-mode'. | 1880 | *** New major mode 'heex-ts-mode'. |
| 2181 | A major mode based on the tree-sitter library for editing HEEx files. | 1881 | A major mode based on the tree-sitter library for editing HEEx files. |
| 2182 | 1882 | ||
| 2183 | +++ | ||
| 2184 | *** New major mode 'html-ts-mode'. | 1883 | *** New major mode 'html-ts-mode'. |
| 2185 | An optional major mode based on the tree-sitter library for editing | 1884 | An optional major mode based on the tree-sitter library for editing |
| 2186 | HTML files. | 1885 | HTML files. |
| 2187 | 1886 | ||
| 2188 | +++ | ||
| 2189 | *** New major mode 'lua-ts-mode'. | 1887 | *** New major mode 'lua-ts-mode'. |
| 2190 | A major mode based on the tree-sitter library for editing Lua files. | 1888 | A major mode based on the tree-sitter library for editing Lua files. |
| 2191 | 1889 | ||
| 2192 | +++ | ||
| 2193 | *** New major mode 'php-ts-mode'. | 1890 | *** New major mode 'php-ts-mode'. |
| 2194 | A major mode based on the tree-sitter library for editing PHP files. | 1891 | A major mode based on the tree-sitter library for editing PHP files. |
| 2195 | 1892 | ||
| 2196 | +++ | ||
| 2197 | ** New package EditorConfig. | 1893 | ** New package EditorConfig. |
| 2198 | This package provides support for the EditorConfig standard, | 1894 | This package provides support for the EditorConfig standard, |
| 2199 | an editor-neutral way to provide directory local (project-wide) settings. | 1895 | an editor-neutral way to provide directory local (project-wide) settings. |
| @@ -2202,13 +1898,11 @@ which makes Emacs obey the '.editorconfig' files. | |||
| 2202 | There is also a new major mode 'editorconfig-conf-mode' | 1898 | There is also a new major mode 'editorconfig-conf-mode' |
| 2203 | to edit those configuration files. | 1899 | to edit those configuration files. |
| 2204 | 1900 | ||
| 2205 | +++ | ||
| 2206 | ** New global minor mode 'etags-regen-mode'. | 1901 | ** New global minor mode 'etags-regen-mode'. |
| 2207 | This minor mode generates the tags table automatically based on the | 1902 | This minor mode generates the tags table automatically based on the |
| 2208 | current project configuration, and later updates it as you edit the | 1903 | current project configuration, and later updates it as you edit the |
| 2209 | files and save the changes. | 1904 | files and save the changes. |
| 2210 | 1905 | ||
| 2211 | +++ | ||
| 2212 | ** New package 'which-key'. | 1906 | ** New package 'which-key'. |
| 2213 | The 'which-key' package from GNU ELPA is now included in Emacs. It | 1907 | The 'which-key' package from GNU ELPA is now included in Emacs. It |
| 2214 | implements the global minor mode 'which-key-mode' that displays a table | 1908 | implements the global minor mode 'which-key-mode' that displays a table |
| @@ -2217,7 +1911,6 @@ moment. For example, after enabling the minor mode, if you enter 'C-x' | |||
| 2217 | and wait for one second, the minibuffer will expand with all available | 1911 | and wait for one second, the minibuffer will expand with all available |
| 2218 | key bindings that follow 'C-x' (or as many as space allows). | 1912 | key bindings that follow 'C-x' (or as many as space allows). |
| 2219 | 1913 | ||
| 2220 | +++ | ||
| 2221 | ** New minor mode 'completion-preview-mode'. | 1914 | ** New minor mode 'completion-preview-mode'. |
| 2222 | This minor mode shows you symbol completion suggestions as you type, | 1915 | This minor mode shows you symbol completion suggestions as you type, |
| 2223 | using an inline preview. New user options in the 'completion-preview' | 1916 | using an inline preview. New user options in the 'completion-preview' |
| @@ -2225,7 +1918,6 @@ customization group control exactly when Emacs displays this preview. | |||
| 2225 | 'completion-preview-mode' is buffer-local, to enable it globally use | 1918 | 'completion-preview-mode' is buffer-local, to enable it globally use |
| 2226 | 'global-completion-preview-mode'. | 1919 | 'global-completion-preview-mode'. |
| 2227 | 1920 | ||
| 2228 | +++ | ||
| 2229 | ** New package Window-Tool-Bar. | 1921 | ** New package Window-Tool-Bar. |
| 2230 | This provides a new minor mode, 'window-tool-bar-mode'. When this minor | 1922 | This provides a new minor mode, 'window-tool-bar-mode'. When this minor |
| 2231 | mode is enabled, a tool bar is displayed at the top of a window. To | 1923 | mode is enabled, a tool bar is displayed at the top of a window. To |
| @@ -2233,7 +1925,6 @@ conserve space, no tool bar is shown if 'tool-bar-map' is nil. The | |||
| 2233 | global minor mode 'global-window-tool-bar-mode' enables this minor mode | 1925 | global minor mode 'global-window-tool-bar-mode' enables this minor mode |
| 2234 | in all buffers. | 1926 | in all buffers. |
| 2235 | 1927 | ||
| 2236 | +++ | ||
| 2237 | ** New library Track-Changes. | 1928 | ** New library Track-Changes. |
| 2238 | This library is a layer of abstraction above 'before-change-functions' | 1929 | This library is a layer of abstraction above 'before-change-functions' |
| 2239 | and 'after-change-functions' which provides a superset of | 1930 | and 'after-change-functions' which provides a superset of |
| @@ -2245,7 +1936,6 @@ the functionality of 'after-change-functions': | |||
| 2245 | reported (calls to 'before/after-change-functions' that are | 1936 | reported (calls to 'before/after-change-functions' that are |
| 2246 | incorrectly paired, missing, etc...) and reports them adequately. | 1937 | incorrectly paired, missing, etc...) and reports them adequately. |
| 2247 | 1938 | ||
| 2248 | +++ | ||
| 2249 | ** New global minor mode 'minibuffer-regexp-mode'. | 1939 | ** New global minor mode 'minibuffer-regexp-mode'. |
| 2250 | This is a minor mode for editing regular expressions in the minibuffer, | 1940 | This is a minor mode for editing regular expressions in the minibuffer, |
| 2251 | for example in 'query-replace-regexp'. It correctly highlights parens | 1941 | for example in 'query-replace-regexp'. It correctly highlights parens |
| @@ -2254,7 +1944,6 @@ avoids reporting alleged paren mismatches and makes sexp navigation more | |||
| 2254 | intuitive. It is enabled by default, 'minibuffer-regexp-prompts' can be | 1944 | intuitive. It is enabled by default, 'minibuffer-regexp-prompts' can be |
| 2255 | used to tune when it takes effect. | 1945 | used to tune when it takes effect. |
| 2256 | 1946 | ||
| 2257 | --- | ||
| 2258 | ** The highly accessible Modus themes collection has eight items. | 1947 | ** The highly accessible Modus themes collection has eight items. |
| 2259 | The 'modus-operandi' and 'modus-vivendi' are the main themes that have | 1948 | The 'modus-operandi' and 'modus-vivendi' are the main themes that have |
| 2260 | been part of Emacs since version 28. The former is light, the latter | 1949 | been part of Emacs since version 28. The former is light, the latter |
| @@ -2266,7 +1955,6 @@ the needs of users with red-green or blue-yellow color deficiency. | |||
| 2266 | The Info manual "(modus-themes) Top" describes the details and | 1955 | The Info manual "(modus-themes) Top" describes the details and |
| 2267 | showcases all their user options. | 1956 | showcases all their user options. |
| 2268 | 1957 | ||
| 2269 | +++ | ||
| 2270 | ** New library PEG. | 1958 | ** New library PEG. |
| 2271 | Emacs now includes a library for writing Parsing Expression | 1959 | Emacs now includes a library for writing Parsing Expression |
| 2272 | Grammars (PEG), an approach to text parsing that provides more structure | 1960 | Grammars (PEG), an approach to text parsing that provides more structure |
| @@ -2274,14 +1962,12 @@ than regular expressions, but less complexity than context-free | |||
| 2274 | grammars. The Info manual "(elisp) Parsing Expression Grammars" has | 1962 | grammars. The Info manual "(elisp) Parsing Expression Grammars" has |
| 2275 | documentation and examples. | 1963 | documentation and examples. |
| 2276 | 1964 | ||
| 2277 | --- | ||
| 2278 | ** New major mode 'shell-command-mode'. | 1965 | ** New major mode 'shell-command-mode'. |
| 2279 | This mode is used by default for the output of asynchronous 'shell-command'. | 1966 | This mode is used by default for the output of asynchronous 'shell-command'. |
| 2280 | To revert to the previous behavior, set the (also new) variable | 1967 | To revert to the previous behavior, set the (also new) variable |
| 2281 | 'async-shell-command-mode' to 'shell-mode'. Any hooks or mode-specific | 1968 | 'async-shell-command-mode' to 'shell-mode'. Any hooks or mode-specific |
| 2282 | variables used should be adapted appropriately. | 1969 | variables used should be adapted appropriately. |
| 2283 | 1970 | ||
| 2284 | +++ | ||
| 2285 | ** New package Compat. | 1971 | ** New package Compat. |
| 2286 | Emacs now comes with a stub implementation of the | 1972 | Emacs now comes with a stub implementation of the |
| 2287 | forwards-compatibility Compat package from GNU ELPA. This allows | 1973 | forwards-compatibility Compat package from GNU ELPA. This allows |
| @@ -2291,7 +1977,6 @@ preventing the installation of Compat if unnecessary. | |||
| 2291 | 1977 | ||
| 2292 | * Incompatible Lisp Changes in Emacs 30.1 | 1978 | * Incompatible Lisp Changes in Emacs 30.1 |
| 2293 | 1979 | ||
| 2294 | +++ | ||
| 2295 | ** Evaluating a 'lambda' returns an object of type 'interpreted-function'. | 1980 | ** Evaluating a 'lambda' returns an object of type 'interpreted-function'. |
| 2296 | Instead of representing interpreted functions as lists that start with | 1981 | Instead of representing interpreted functions as lists that start with |
| 2297 | either 'lambda' or 'closure', Emacs now represents them as objects | 1982 | either 'lambda' or 'closure', Emacs now represents them as objects |
| @@ -2308,17 +1993,14 @@ no longer work and will need to use 'aref' instead to extract its | |||
| 2308 | various subparts (when 'interactive-form', 'documentation', and | 1993 | various subparts (when 'interactive-form', 'documentation', and |
| 2309 | 'help-function-arglist' aren't adequate). | 1994 | 'help-function-arglist' aren't adequate). |
| 2310 | 1995 | ||
| 2311 | --- | ||
| 2312 | ** The escape sequence '\x' not followed by hex digits is now an error. | 1996 | ** The escape sequence '\x' not followed by hex digits is now an error. |
| 2313 | Previously, '\x' without at least one hex digit denoted character code | 1997 | Previously, '\x' without at least one hex digit denoted character code |
| 2314 | zero (NUL) but as this was neither intended nor documented or even | 1998 | zero (NUL) but as this was neither intended nor documented or even |
| 2315 | known by anyone, it is now treated as an error by the Lisp reader. | 1999 | known by anyone, it is now treated as an error by the Lisp reader. |
| 2316 | 2000 | ||
| 2317 | --- | ||
| 2318 | ** 'subr-native-elisp-p' is renamed to 'native-comp-function-p'. | 2001 | ** 'subr-native-elisp-p' is renamed to 'native-comp-function-p'. |
| 2319 | The previous name still exists but is marked as obsolete. | 2002 | The previous name still exists but is marked as obsolete. |
| 2320 | 2003 | ||
| 2321 | +++ | ||
| 2322 | ** 'define-globalized-minor-mode' requires that modes use 'run-mode-hooks'. | 2004 | ** 'define-globalized-minor-mode' requires that modes use 'run-mode-hooks'. |
| 2323 | Minor modes defined with 'define-globalized-minor-mode', such as | 2005 | Minor modes defined with 'define-globalized-minor-mode', such as |
| 2324 | 'global-font-lock-mode', will not be enabled any more in those buffers | 2006 | 'global-font-lock-mode', will not be enabled any more in those buffers |
| @@ -2326,7 +2008,6 @@ whose major modes fail to use 'run-mode-hooks'. Major modes defined | |||
| 2326 | with 'define-derived-mode' are not affected. 'run-mode-hooks' has been the | 2008 | with 'define-derived-mode' are not affected. 'run-mode-hooks' has been the |
| 2327 | recommended way to run major mode hooks since Emacs 22. | 2009 | recommended way to run major mode hooks since Emacs 22. |
| 2328 | 2010 | ||
| 2329 | +++ | ||
| 2330 | ** 'buffer-match-p' and 'match-buffers' take '&rest ARGS'. | 2011 | ** 'buffer-match-p' and 'match-buffers' take '&rest ARGS'. |
| 2331 | They used to take a single '&optional ARG' and were documented to use | 2012 | They used to take a single '&optional ARG' and were documented to use |
| 2332 | an unreliable hack to try and support condition predicates that | 2013 | an unreliable hack to try and support condition predicates that |
| @@ -2334,18 +2015,14 @@ don't accept this optional ARG. | |||
| 2334 | The new semantics makes no such accommodation, but the code still | 2015 | The new semantics makes no such accommodation, but the code still |
| 2335 | supports it (with a warning) for backward compatibility. | 2016 | supports it (with a warning) for backward compatibility. |
| 2336 | 2017 | ||
| 2337 | --- | ||
| 2338 | ** 'post-gc-hook' runs after updating 'gcs-done' and 'gc-elapsed'. | 2018 | ** 'post-gc-hook' runs after updating 'gcs-done' and 'gc-elapsed'. |
| 2339 | 2019 | ||
| 2340 | --- | ||
| 2341 | ** Connection-local variables are applied in buffers visiting remote files. | 2020 | ** Connection-local variables are applied in buffers visiting remote files. |
| 2342 | This overrides possible directory-local or file-local variables with | 2021 | This overrides possible directory-local or file-local variables with |
| 2343 | the same name. | 2022 | the same name. |
| 2344 | 2023 | ||
| 2345 | +++ | ||
| 2346 | ** 'copy-tree' now copies records when its optional 2nd argument is non-nil. | 2024 | ** 'copy-tree' now copies records when its optional 2nd argument is non-nil. |
| 2347 | 2025 | ||
| 2348 | +++ | ||
| 2349 | ** Regexp zero-width assertions followed by operators are better defined. | 2026 | ** Regexp zero-width assertions followed by operators are better defined. |
| 2350 | Previously, regexps such as "xy\\B*" would have ill-defined behavior. | 2027 | Previously, regexps such as "xy\\B*" would have ill-defined behavior. |
| 2351 | Now any operator following a zero-width assertion applies to that | 2028 | Now any operator following a zero-width assertion applies to that |
| @@ -2353,7 +2030,6 @@ assertion only (which is useless). For historical compatibility, an | |||
| 2353 | operator character following '^' or '\`' becomes literal, but we | 2030 | operator character following '^' or '\`' becomes literal, but we |
| 2354 | advise against relying on this. | 2031 | advise against relying on this. |
| 2355 | 2032 | ||
| 2356 | +++ | ||
| 2357 | ** Infinities and NaNs no longer act as symbols on non-IEEE platforms. | 2033 | ** Infinities and NaNs no longer act as symbols on non-IEEE platforms. |
| 2358 | On old platforms like the VAX that do not support IEEE floating-point, | 2034 | On old platforms like the VAX that do not support IEEE floating-point, |
| 2359 | tokens like '0.0e+NaN' and '1.0e+INF' are no longer read as symbols. | 2035 | tokens like '0.0e+NaN' and '1.0e+INF' are no longer read as symbols. |
| @@ -2361,7 +2037,6 @@ Instead, the Lisp reader approximates an infinity with the nearest | |||
| 2361 | finite value, and a NaN with some other non-numeric object that | 2037 | finite value, and a NaN with some other non-numeric object that |
| 2362 | provokes an error if used numerically. | 2038 | provokes an error if used numerically. |
| 2363 | 2039 | ||
| 2364 | +++ | ||
| 2365 | ** Conversion of strings to and from byte-arrays works with multibyte strings. | 2040 | ** Conversion of strings to and from byte-arrays works with multibyte strings. |
| 2366 | The functions 'dbus-string-to-byte-array' and | 2041 | The functions 'dbus-string-to-byte-array' and |
| 2367 | 'dbus-byte-array-to-string' now accept and return multibyte Lisp | 2042 | 'dbus-byte-array-to-string' now accept and return multibyte Lisp |
| @@ -2372,60 +2047,48 @@ UTF-8 byte sequence, and the optional parameter MULTIBYTE of | |||
| 2372 | 'dbus-string-to-byte-array' should be a regular Lisp string, not a | 2047 | 'dbus-string-to-byte-array' should be a regular Lisp string, not a |
| 2373 | unibyte string. | 2048 | unibyte string. |
| 2374 | 2049 | ||
| 2375 | +++ | ||
| 2376 | ** 'minibuffer-allow-text-properties' now can be set buffer-local. | 2050 | ** 'minibuffer-allow-text-properties' now can be set buffer-local. |
| 2377 | 'read-from-minibuffer' and functions that use it can take the | 2051 | 'read-from-minibuffer' and functions that use it can take the |
| 2378 | buffer-local value from the minibuffer. | 2052 | buffer-local value from the minibuffer. |
| 2379 | 2053 | ||
| 2380 | +++ | ||
| 2381 | ** 'minibuffer-allow-text-properties' now also affects completions. | 2054 | ** 'minibuffer-allow-text-properties' now also affects completions. |
| 2382 | When it has a non-nil value, then completion functions like | 2055 | When it has a non-nil value, then completion functions like |
| 2383 | 'completing-read' don't discard text properties from the returned | 2056 | 'completing-read' don't discard text properties from the returned |
| 2384 | completion candidate. | 2057 | completion candidate. |
| 2385 | 2058 | ||
| 2386 | +++ | ||
| 2387 | ** X color support compatibility aliases are now obsolete. | 2059 | ** X color support compatibility aliases are now obsolete. |
| 2388 | The compatibility aliases 'x-defined-colors', 'x-color-defined-p', | 2060 | The compatibility aliases 'x-defined-colors', 'x-color-defined-p', |
| 2389 | 'x-color-values', and 'x-display-color-p' are now obsolete. | 2061 | 'x-color-values', and 'x-display-color-p' are now obsolete. |
| 2390 | 2062 | ||
| 2391 | +++ | ||
| 2392 | ** 'easy-mmode-define-{minor,global}-mode' aliases are now obsolete. | 2063 | ** 'easy-mmode-define-{minor,global}-mode' aliases are now obsolete. |
| 2393 | Use 'define-minor-mode' and 'define-globalized-minor-mode' instead. | 2064 | Use 'define-minor-mode' and 'define-globalized-minor-mode' instead. |
| 2394 | 2065 | ||
| 2395 | +++ | ||
| 2396 | ** The 'millisec' argument of 'sleep-for' is now obsolete. | 2066 | ** The 'millisec' argument of 'sleep-for' is now obsolete. |
| 2397 | Use a float value for the first argument instead. | 2067 | Use a float value for the first argument instead. |
| 2398 | 2068 | ||
| 2399 | --- | ||
| 2400 | ** User options 'eshell-NAME-unload-hook' are now obsolete. | 2069 | ** User options 'eshell-NAME-unload-hook' are now obsolete. |
| 2401 | These hooks were named incorrectly, and so they never actually ran | 2070 | These hooks were named incorrectly, and so they never actually ran |
| 2402 | when unloading the corresponding feature. Instead, you should use | 2071 | when unloading the corresponding feature. Instead, you should use |
| 2403 | hooks named after the feature name, like 'esh-mode-unload-hook'. | 2072 | hooks named after the feature name, like 'esh-mode-unload-hook'. |
| 2404 | 2073 | ||
| 2405 | --- | ||
| 2406 | ** User options 'eshell-process-wait-{seconds,milliseconds}' are now obsolete. | 2074 | ** User options 'eshell-process-wait-{seconds,milliseconds}' are now obsolete. |
| 2407 | Instead, use 'eshell-process-wait-time', which supports floating-point | 2075 | Instead, use 'eshell-process-wait-time', which supports floating-point |
| 2408 | values. | 2076 | values. |
| 2409 | 2077 | ||
| 2410 | --- | ||
| 2411 | ** User option 'tramp-completion-reread-directory-timeout' has been removed. | 2078 | ** User option 'tramp-completion-reread-directory-timeout' has been removed. |
| 2412 | This user option was obsoleted in Emacs 27, use | 2079 | This user option was obsoleted in Emacs 27, use |
| 2413 | 'remote-file-name-inhibit-cache' instead. | 2080 | 'remote-file-name-inhibit-cache' instead. |
| 2414 | 2081 | ||
| 2415 | +++ | ||
| 2416 | ** The obsolete calling convention of 'sit-for' has been removed. | 2082 | ** The obsolete calling convention of 'sit-for' has been removed. |
| 2417 | That convention was: '(sit-for SECONDS MILLISEC &optional NODISP)'. | 2083 | That convention was: '(sit-for SECONDS MILLISEC &optional NODISP)'. |
| 2418 | 2084 | ||
| 2419 | --- | ||
| 2420 | ** 'defadvice' is marked as obsolete. | 2085 | ** 'defadvice' is marked as obsolete. |
| 2421 | See the "(elisp) Porting Old Advice" Info node for help converting | 2086 | See the "(elisp) Porting Old Advice" Info node for help converting |
| 2422 | them to use 'advice-add' or 'define-advice' instead. | 2087 | them to use 'advice-add' or 'define-advice' instead. |
| 2423 | 2088 | ||
| 2424 | --- | ||
| 2425 | ** 'cl-old-struct-compat-mode' is marked as obsolete. | 2089 | ** 'cl-old-struct-compat-mode' is marked as obsolete. |
| 2426 | You may need to recompile your code if it was compiled with Emacs < 24.3. | 2090 | You may need to recompile your code if it was compiled with Emacs < 24.3. |
| 2427 | 2091 | ||
| 2428 | --- | ||
| 2429 | ** Old derived.el functions removed. | 2092 | ** Old derived.el functions removed. |
| 2430 | The following functions have been deleted because they were only used | 2093 | The following functions have been deleted because they were only used |
| 2431 | by code compiled with Emacs < 21: | 2094 | by code compiled with Emacs < 21: |
| @@ -2438,40 +2101,33 @@ by code compiled with Emacs < 21: | |||
| 2438 | 2101 | ||
| 2439 | * Lisp Changes in Emacs 30.1 | 2102 | * Lisp Changes in Emacs 30.1 |
| 2440 | 2103 | ||
| 2441 | +++ | ||
| 2442 | ** The 'wheel-up/down/left/right' events are now bound unconditionally. | 2104 | ** The 'wheel-up/down/left/right' events are now bound unconditionally. |
| 2443 | The 'mouse-wheel-up/down/left/right-event' variables are thus used only | 2105 | The 'mouse-wheel-up/down/left/right-event' variables are thus used only |
| 2444 | to specify the 'mouse-4/5/6/7' events that might still happen to be | 2106 | to specify the 'mouse-4/5/6/7' events that might still happen to be |
| 2445 | generated by some old packages (or if 'mouse-wheel-buttons' has been set | 2107 | generated by some old packages (or if 'mouse-wheel-buttons' has been set |
| 2446 | to nil). | 2108 | to nil). |
| 2447 | 2109 | ||
| 2448 | --- | ||
| 2449 | ** Xterm Mouse mode now emits 'wheel-up/down/right/left' events. | 2110 | ** Xterm Mouse mode now emits 'wheel-up/down/right/left' events. |
| 2450 | This is instead of 'mouse-4/5/6/7' events for the mouse wheel. It uses | 2111 | This is instead of 'mouse-4/5/6/7' events for the mouse wheel. It uses |
| 2451 | the new variable 'mouse-wheel-buttons' to decide which button maps to | 2112 | the new variable 'mouse-wheel-buttons' to decide which button maps to |
| 2452 | which wheel event (if any). | 2113 | which wheel event (if any). |
| 2453 | 2114 | ||
| 2454 | --- | ||
| 2455 | ** In batch mode, tracing now sends the trace to stdout. | 2115 | ** In batch mode, tracing now sends the trace to stdout. |
| 2456 | 2116 | ||
| 2457 | +++ | ||
| 2458 | ** New hook 'hack-dir-local-get-variables-functions'. | 2117 | ** New hook 'hack-dir-local-get-variables-functions'. |
| 2459 | This can be used to provide support for other directory-local settings | 2118 | This can be used to provide support for other directory-local settings |
| 2460 | beside ".dir-locals.el". | 2119 | beside ".dir-locals.el". |
| 2461 | 2120 | ||
| 2462 | +++ | ||
| 2463 | ** 'auto-coding-functions' can know the name of the file. | 2121 | ** 'auto-coding-functions' can know the name of the file. |
| 2464 | The functions on this hook can now find the name of the file to | 2122 | The functions on this hook can now find the name of the file to |
| 2465 | which the text belongs by consulting the variable 'auto-coding-file-name'. | 2123 | which the text belongs by consulting the variable 'auto-coding-file-name'. |
| 2466 | 2124 | ||
| 2467 | +++ | ||
| 2468 | ** New user option 'compilation-safety' to control safety of native code. | 2125 | ** New user option 'compilation-safety' to control safety of native code. |
| 2469 | It is now possible to control how safe is the code generated by native | 2126 | It is now possible to control how safe is the code generated by native |
| 2470 | compilation, by customizing this user option. It is also possible to | 2127 | compilation, by customizing this user option. It is also possible to |
| 2471 | control this at function granularity by using the new 'safety' parameter | 2128 | control this at function granularity by using the new 'safety' parameter |
| 2472 | in the function's 'declare' form. | 2129 | in the function's 'declare' form. |
| 2473 | 2130 | ||
| 2474 | +++ | ||
| 2475 | ** New types 'closure' and 'interpreted-function'. | 2131 | ** New types 'closure' and 'interpreted-function'. |
| 2476 | 'interpreted-function' is the new type used for interpreted functions, | 2132 | 'interpreted-function' is the new type used for interpreted functions, |
| 2477 | and 'closure' is the common parent type of 'interpreted-function' | 2133 | and 'closure' is the common parent type of 'interpreted-function' |
| @@ -2481,91 +2137,75 @@ Those new types come with the associated new predicates 'closurep' and | |||
| 2481 | 'interpreted-function-p' as well as a new constructor | 2137 | 'interpreted-function-p' as well as a new constructor |
| 2482 | 'make-interpreted-closure'. | 2138 | 'make-interpreted-closure'. |
| 2483 | 2139 | ||
| 2484 | --- | ||
| 2485 | ** New function 'help-fns-function-name'. | 2140 | ** New function 'help-fns-function-name'. |
| 2486 | For named functions, it just returns the name and otherwise | 2141 | For named functions, it just returns the name and otherwise |
| 2487 | it returns a short "unique" string that identifies the function. | 2142 | it returns a short "unique" string that identifies the function. |
| 2488 | In either case, the string is propertized so clicking on it gives | 2143 | In either case, the string is propertized so clicking on it gives |
| 2489 | further details. | 2144 | further details. |
| 2490 | 2145 | ||
| 2491 | +++ | ||
| 2492 | ** New function 'char-to-name'. | 2146 | ** New function 'char-to-name'. |
| 2493 | This is a convenience function to return the Unicode name of a char (if | 2147 | This is a convenience function to return the Unicode name of a char (if |
| 2494 | it has one). | 2148 | it has one). |
| 2495 | 2149 | ||
| 2496 | +++ | ||
| 2497 | ** New function 'cl-type-of'. | 2150 | ** New function 'cl-type-of'. |
| 2498 | This function is like 'type-of' except that it sometimes returns | 2151 | This function is like 'type-of' except that it sometimes returns |
| 2499 | a more precise type. For example, for nil and t it returns 'null' | 2152 | a more precise type. For example, for nil and t it returns 'null' |
| 2500 | and 'boolean' respectively, instead of just 'symbol'. | 2153 | and 'boolean' respectively, instead of just 'symbol'. |
| 2501 | 2154 | ||
| 2502 | +++ | ||
| 2503 | ** New functions 'primitive-function-p' and 'cl-functionp'. | 2155 | ** New functions 'primitive-function-p' and 'cl-functionp'. |
| 2504 | 'primitive-function-p' is like 'subr-primitive-p' except that it returns | 2156 | 'primitive-function-p' is like 'subr-primitive-p' except that it returns |
| 2505 | t only if the argument is a function rather than a special-form, | 2157 | t only if the argument is a function rather than a special-form, |
| 2506 | and 'cl-functionp' is like 'functionp' except it returns nil | 2158 | and 'cl-functionp' is like 'functionp' except it returns nil |
| 2507 | for lists and symbols. | 2159 | for lists and symbols. |
| 2508 | 2160 | ||
| 2509 | --- | ||
| 2510 | ** Built-in types now have corresponding classes. | 2161 | ** Built-in types now have corresponding classes. |
| 2511 | At the Lisp level, this means that things like '(cl-find-class 'integer)' | 2162 | At the Lisp level, this means that things like '(cl-find-class 'integer)' |
| 2512 | will now return a class object, and at the UI level it means that | 2163 | will now return a class object, and at the UI level it means that |
| 2513 | things like 'C-h o integer RET' will show some information about that type. | 2164 | things like 'C-h o integer RET' will show some information about that type. |
| 2514 | 2165 | ||
| 2515 | --- | ||
| 2516 | ** New variable 'major-mode-remap-defaults' and function 'major-mode-remap'. | 2166 | ** New variable 'major-mode-remap-defaults' and function 'major-mode-remap'. |
| 2517 | The first is like Emacs-29's 'major-mode-remap-alist' but to be set by | 2167 | The first is like Emacs-29's 'major-mode-remap-alist' but to be set by |
| 2518 | packages (instead of users). The second looks up those two variables. | 2168 | packages (instead of users). The second looks up those two variables. |
| 2519 | 2169 | ||
| 2520 | +++ | ||
| 2521 | ** Pcase's functions (in 'pred' and 'app') can specify the argument position. | 2170 | ** Pcase's functions (in 'pred' and 'app') can specify the argument position. |
| 2522 | For example, instead of '(pred (< 5))' you can write '(pred (> _ 5))'. | 2171 | For example, instead of '(pred (< 5))' you can write '(pred (> _ 5))'. |
| 2523 | 2172 | ||
| 2524 | +++ | ||
| 2525 | ** 'define-advice' now sets the new advice's 'name' property to NAME. | 2173 | ** 'define-advice' now sets the new advice's 'name' property to NAME. |
| 2526 | Named advices defined with 'define-advice' can now be removed with | 2174 | Named advices defined with 'define-advice' can now be removed with |
| 2527 | '(advice-remove SYMBOL NAME)' in addition to '(advice-remove SYMBOL | 2175 | '(advice-remove SYMBOL NAME)' in addition to '(advice-remove SYMBOL |
| 2528 | SYMBOL@NAME)'. | 2176 | SYMBOL@NAME)'. |
| 2529 | 2177 | ||
| 2530 | +++ | ||
| 2531 | ** New function 'require-with-check' to detect new versions shadowing. | 2178 | ** New function 'require-with-check' to detect new versions shadowing. |
| 2532 | This is like 'require', but it checks whether the argument 'feature' | 2179 | This is like 'require', but it checks whether the argument 'feature' |
| 2533 | is already loaded, in which case it either signals an error or | 2180 | is already loaded, in which case it either signals an error or |
| 2534 | forcibly reloads the file that defines the feature. | 2181 | forcibly reloads the file that defines the feature. |
| 2535 | 2182 | ||
| 2536 | +++ | ||
| 2537 | ** New variable 'lisp-eval-depth-reserve'. | 2183 | ** New variable 'lisp-eval-depth-reserve'. |
| 2538 | It puts a limit to the amount by which Emacs can temporarily increase | 2184 | It puts a limit to the amount by which Emacs can temporarily increase |
| 2539 | 'max-lisp-eval-depth' when handling signals. | 2185 | 'max-lisp-eval-depth' when handling signals. |
| 2540 | 2186 | ||
| 2541 | +++ | ||
| 2542 | ** New special form 'handler-bind'. | 2187 | ** New special form 'handler-bind'. |
| 2543 | It provides a functionality similar to 'condition-case' except it runs | 2188 | It provides a functionality similar to 'condition-case' except it runs |
| 2544 | the handler code without unwinding the stack, such that we can record | 2189 | the handler code without unwinding the stack, such that we can record |
| 2545 | the backtrace and other dynamic state at the point of the error. See | 2190 | the backtrace and other dynamic state at the point of the error. See |
| 2546 | the Info node "(elisp) Handling Errors". | 2191 | the Info node "(elisp) Handling Errors". |
| 2547 | 2192 | ||
| 2548 | +++ | ||
| 2549 | ** New text properties add tooltips on fringes. | 2193 | ** New text properties add tooltips on fringes. |
| 2550 | It is now possible to provide tooltips on fringes by adding special text | 2194 | It is now possible to provide tooltips on fringes by adding special text |
| 2551 | properties 'left-fringe-help' and 'right-fringe-help'. See the "(elisp) | 2195 | properties 'left-fringe-help' and 'right-fringe-help'. See the "(elisp) |
| 2552 | Special Properties" Info node in the Emacs Lisp Reference Manual for | 2196 | Special Properties" Info node in the Emacs Lisp Reference Manual for |
| 2553 | more details. | 2197 | more details. |
| 2554 | 2198 | ||
| 2555 | +++ | ||
| 2556 | ** New 'display-buffer' action alist entry 'pop-up-frames'. | 2199 | ** New 'display-buffer' action alist entry 'pop-up-frames'. |
| 2557 | This has the same effect as the variable of the same name and takes | 2200 | This has the same effect as the variable of the same name and takes |
| 2558 | precedence over the variable when present. | 2201 | precedence over the variable when present. |
| 2559 | 2202 | ||
| 2560 | --- | ||
| 2561 | ** New function 'merge-ordered-lists'. | 2203 | ** New function 'merge-ordered-lists'. |
| 2562 | Mostly used internally to do a kind of topological sort of | 2204 | Mostly used internally to do a kind of topological sort of |
| 2563 | inheritance hierarchies. | 2205 | inheritance hierarchies. |
| 2564 | 2206 | ||
| 2565 | +++ | ||
| 2566 | ** 'drop' is now an alias for the function 'nthcdr'. | 2207 | ** 'drop' is now an alias for the function 'nthcdr'. |
| 2567 | 2208 | ||
| 2568 | +++ | ||
| 2569 | ** New polymorphic comparison function 'value<'. | 2209 | ** New polymorphic comparison function 'value<'. |
| 2570 | This function returns non-nil if the first argument is less than the | 2210 | This function returns non-nil if the first argument is less than the |
| 2571 | second. It works for any two values of the same type with reasonable | 2211 | second. It works for any two values of the same type with reasonable |
| @@ -2575,7 +2215,6 @@ lexicographically. | |||
| 2575 | It is intended as a convenient ordering predicate for sorting, and is | 2215 | It is intended as a convenient ordering predicate for sorting, and is |
| 2576 | likely to be faster than hand-written Lisp functions. | 2216 | likely to be faster than hand-written Lisp functions. |
| 2577 | 2217 | ||
| 2578 | +++ | ||
| 2579 | ** New 'sort' arguments and features. | 2218 | ** New 'sort' arguments and features. |
| 2580 | The 'sort' function can now be called using the signature | 2219 | The 'sort' function can now be called using the signature |
| 2581 | 2220 | ||
| @@ -2602,13 +2241,11 @@ its input in-place as before. | |||
| 2602 | 2241 | ||
| 2603 | ** New API for 'derived-mode-p' and control of the graph of major modes | 2242 | ** New API for 'derived-mode-p' and control of the graph of major modes |
| 2604 | 2243 | ||
| 2605 | +++ | ||
| 2606 | *** 'derived-mode-p' now takes the list of modes as a single argument. | 2244 | *** 'derived-mode-p' now takes the list of modes as a single argument. |
| 2607 | The same holds for 'provided-mode-derived-p'. | 2245 | The same holds for 'provided-mode-derived-p'. |
| 2608 | The old calling convention where multiple modes are passed as | 2246 | The old calling convention where multiple modes are passed as |
| 2609 | separate arguments is deprecated. | 2247 | separate arguments is deprecated. |
| 2610 | 2248 | ||
| 2611 | +++ | ||
| 2612 | *** New functions to access the graph of major modes. | 2249 | *** New functions to access the graph of major modes. |
| 2613 | While 'define-derived-mode' still only supports single inheritance, | 2250 | While 'define-derived-mode' still only supports single inheritance, |
| 2614 | modes can declare additional parents (for tests like 'derived-mode-p') | 2251 | modes can declare additional parents (for tests like 'derived-mode-p') |
| @@ -2617,7 +2254,6 @@ Accessing the 'derived-mode-parent' property directly is now | |||
| 2617 | deprecated in favor of the new functions 'derived-mode-set-parent' | 2254 | deprecated in favor of the new functions 'derived-mode-set-parent' |
| 2618 | and 'derived-mode-all-parents'. | 2255 | and 'derived-mode-all-parents'. |
| 2619 | 2256 | ||
| 2620 | +++ | ||
| 2621 | ** Drag-and-drop functions can now be called once for compound drops. | 2257 | ** Drag-and-drop functions can now be called once for compound drops. |
| 2622 | It is now possible for drag-and-drop handler functions to respond to | 2258 | It is now possible for drag-and-drop handler functions to respond to |
| 2623 | drops incorporating more than one URL. Functions capable of this must | 2259 | drops incorporating more than one URL. Functions capable of this must |
| @@ -2627,7 +2263,6 @@ See the Info node "(elisp) Drag and Drop". | |||
| 2627 | The function 'dnd-handle-one-url' has been made obsolete, since it | 2263 | The function 'dnd-handle-one-url' has been made obsolete, since it |
| 2628 | cannot take these new handlers into account. | 2264 | cannot take these new handlers into account. |
| 2629 | 2265 | ||
| 2630 | +++ | ||
| 2631 | ** 'notifications-notify' can use Icon Naming Specification for ':app-icon'. | 2266 | ** 'notifications-notify' can use Icon Naming Specification for ':app-icon'. |
| 2632 | You can use a symbol as the value for ':app-icon' to provide icon name | 2267 | You can use a symbol as the value for ':app-icon' to provide icon name |
| 2633 | without specifying a file, like this: | 2268 | without specifying a file, like this: |
| @@ -2635,54 +2270,45 @@ without specifying a file, like this: | |||
| 2635 | (notifications-notify | 2270 | (notifications-notify |
| 2636 | :title "I am playing music" :app-icon 'multimedia-player) | 2271 | :title "I am playing music" :app-icon 'multimedia-player) |
| 2637 | 2272 | ||
| 2638 | --- | ||
| 2639 | ** New function 're-disassemble' to see the innards of a regexp. | 2273 | ** New function 're-disassemble' to see the innards of a regexp. |
| 2640 | If you built Emacs with '--enable-checking', you can use this to help | 2274 | If you built Emacs with '--enable-checking', you can use this to help |
| 2641 | debug either your regexp performance problems or the regexp engine. | 2275 | debug either your regexp performance problems or the regexp engine. |
| 2642 | 2276 | ||
| 2643 | +++ | ||
| 2644 | ** XLFDs are no longer restricted to 255 characters. | 2277 | ** XLFDs are no longer restricted to 255 characters. |
| 2645 | 'font-xlfd-name' now returns an XLFD even if it is greater than 255 | 2278 | 'font-xlfd-name' now returns an XLFD even if it is greater than 255 |
| 2646 | characters in length, provided that the LONG_XLFDs argument is true. | 2279 | characters in length, provided that the LONG_XLFDs argument is true. |
| 2647 | Other features in Emacs which employ XLFDs have been modified to | 2280 | Other features in Emacs which employ XLFDs have been modified to |
| 2648 | produce and understand XLFDs larger than 255 characters. | 2281 | produce and understand XLFDs larger than 255 characters. |
| 2649 | 2282 | ||
| 2650 | +++ | ||
| 2651 | ** New macro 'static-if' for conditional evaluation of code. | 2283 | ** New macro 'static-if' for conditional evaluation of code. |
| 2652 | This macro hides a form from the evaluator or byte-compiler based on a | 2284 | This macro hides a form from the evaluator or byte-compiler based on a |
| 2653 | compile-time condition. This is handy for avoiding byte-compilation | 2285 | compile-time condition. This is handy for avoiding byte-compilation |
| 2654 | warnings about code that will never actually run under some conditions. | 2286 | warnings about code that will never actually run under some conditions. |
| 2655 | 2287 | ||
| 2656 | +++ | ||
| 2657 | ** Desktop notifications are now supported on the Haiku operating system. | 2288 | ** Desktop notifications are now supported on the Haiku operating system. |
| 2658 | The new function 'haiku-notifications-notify' provides a subset of the | 2289 | The new function 'haiku-notifications-notify' provides a subset of the |
| 2659 | capabilities of the 'notifications-notify' function in a manner | 2290 | capabilities of the 'notifications-notify' function in a manner |
| 2660 | analogous to 'w32-notification-notify'. | 2291 | analogous to 'w32-notification-notify'. |
| 2661 | 2292 | ||
| 2662 | --- | ||
| 2663 | ** New Haiku specific variable 'haiku-pass-control-tab-to-system'. | 2293 | ** New Haiku specific variable 'haiku-pass-control-tab-to-system'. |
| 2664 | This sets whether Emacs should pass 'C-TAB' on to the system instead of | 2294 | This sets whether Emacs should pass 'C-TAB' on to the system instead of |
| 2665 | handling it, fixing a problem where window switching would not activate | 2295 | handling it, fixing a problem where window switching would not activate |
| 2666 | if an Emacs frame had focus on the Haiku operating system. Default | 2296 | if an Emacs frame had focus on the Haiku operating system. Default |
| 2667 | value is t. | 2297 | value is t. |
| 2668 | 2298 | ||
| 2669 | +++ | ||
| 2670 | ** New value 'if-regular' for the REPLACE argument to 'insert-file-contents'. | 2299 | ** New value 'if-regular' for the REPLACE argument to 'insert-file-contents'. |
| 2671 | It results in 'insert-file-contents' erasing the buffer instead of | 2300 | It results in 'insert-file-contents' erasing the buffer instead of |
| 2672 | preserving markers if the file being inserted is not a regular file, | 2301 | preserving markers if the file being inserted is not a regular file, |
| 2673 | rather than signaling an error. | 2302 | rather than signaling an error. |
| 2674 | 2303 | ||
| 2675 | +++ | ||
| 2676 | ** New variable 'current-key-remap-sequence'. | 2304 | ** New variable 'current-key-remap-sequence'. |
| 2677 | It is bound to the key sequence that caused a call to a function bound | 2305 | It is bound to the key sequence that caused a call to a function bound |
| 2678 | within 'function-key-map' or 'input-decode-map' around those calls. | 2306 | within 'function-key-map' or 'input-decode-map' around those calls. |
| 2679 | 2307 | ||
| 2680 | +++ | ||
| 2681 | ** The function 'key-translate' can now remove translations. | 2308 | ** The function 'key-translate' can now remove translations. |
| 2682 | If the second argument TO is nil, the existing key translation is | 2309 | If the second argument TO is nil, the existing key translation is |
| 2683 | removed. | 2310 | removed. |
| 2684 | 2311 | ||
| 2685 | +++ | ||
| 2686 | ** New variables describing the names of built in programs. | 2312 | ** New variables describing the names of built in programs. |
| 2687 | The new variables 'ctags-program-name', 'ebrowse-program-name', | 2313 | The new variables 'ctags-program-name', 'ebrowse-program-name', |
| 2688 | 'etags-program-name', 'hexl-program-name', 'emacsclient-program-name' | 2314 | 'etags-program-name', 'hexl-program-name', 'emacsclient-program-name' |
| @@ -2690,7 +2316,6 @@ The new variables 'ctags-program-name', 'ebrowse-program-name', | |||
| 2690 | instead of "ctags", "ebrowse", "etags", "hexl", "emacsclient", and | 2316 | instead of "ctags", "ebrowse", "etags", "hexl", "emacsclient", and |
| 2691 | "rcs2log", when starting one of these built in programs in a subprocess. | 2317 | "rcs2log", when starting one of these built in programs in a subprocess. |
| 2692 | 2318 | ||
| 2693 | +++ | ||
| 2694 | ** New variable 'case-symbols-as-words' affects case operations for symbols. | 2319 | ** New variable 'case-symbols-as-words' affects case operations for symbols. |
| 2695 | If non-nil, then case operations such as 'upcase-initials' or | 2320 | If non-nil, then case operations such as 'upcase-initials' or |
| 2696 | 'replace-match' (with nil FIXEDCASE) will treat the entire symbol name | 2321 | 'replace-match' (with nil FIXEDCASE) will treat the entire symbol name |
| @@ -2698,7 +2323,6 @@ as a single word. This is useful for programming languages and styles | |||
| 2698 | where only the first letter of a symbol's name is ever capitalized. | 2323 | where only the first letter of a symbol's name is ever capitalized. |
| 2699 | The default value of this variable is nil. | 2324 | The default value of this variable is nil. |
| 2700 | 2325 | ||
| 2701 | --- | ||
| 2702 | ** Bytecode is now always loaded eagerly. | 2326 | ** Bytecode is now always loaded eagerly. |
| 2703 | Bytecode compiled with older Emacs versions for lazy loading using | 2327 | Bytecode compiled with older Emacs versions for lazy loading using |
| 2704 | 'byte-compile-dynamic' is now loaded all at once. | 2328 | 'byte-compile-dynamic' is now loaded all at once. |
| @@ -2706,7 +2330,6 @@ As a consequence, 'fetch-bytecode' has no use, does nothing, and is | |||
| 2706 | now obsolete. The variable 'byte-compile-dynamic' has no effect any | 2330 | now obsolete. The variable 'byte-compile-dynamic' has no effect any |
| 2707 | more; compilation will always yield bytecode for eager loading. | 2331 | more; compilation will always yield bytecode for eager loading. |
| 2708 | 2332 | ||
| 2709 | +++ | ||
| 2710 | ** Returned strings from functions and macros are never docstrings. | 2333 | ** Returned strings from functions and macros are never docstrings. |
| 2711 | Functions and macros whose bodies consist of a single string literal now | 2334 | Functions and macros whose bodies consist of a single string literal now |
| 2712 | only return that string, and will not use it as a docstring. Example: | 2335 | only return that string, and will not use it as a docstring. Example: |
| @@ -2724,7 +2347,6 @@ forms; other defining forms such as 'cl-defun' already worked this way. | |||
| 2724 | 2347 | ||
| 2725 | ** New or changed byte-compilation warnings | 2348 | ** New or changed byte-compilation warnings |
| 2726 | 2349 | ||
| 2727 | --- | ||
| 2728 | *** Warn about missing 'lexical-binding' directive. | 2350 | *** Warn about missing 'lexical-binding' directive. |
| 2729 | The compiler now warns if an Elisp file lacks the standard | 2351 | The compiler now warns if an Elisp file lacks the standard |
| 2730 | '-*- lexical-binding: ... -*-' cookie on the first line. | 2352 | '-*- lexical-binding: ... -*-' cookie on the first line. |
| @@ -2748,7 +2370,6 @@ the line | |||
| 2748 | 2370 | ||
| 2749 | first in the file to declare that it uses the old dialect. | 2371 | first in the file to declare that it uses the old dialect. |
| 2750 | 2372 | ||
| 2751 | --- | ||
| 2752 | *** Warn about empty bodies for more special forms and macros. | 2373 | *** Warn about empty bodies for more special forms and macros. |
| 2753 | The compiler now warns about an empty body argument to 'when', | 2374 | The compiler now warns about an empty body argument to 'when', |
| 2754 | 'unless', 'ignore-error' and 'with-suppressed-warnings' in addition to | 2375 | 'unless', 'ignore-error' and 'with-suppressed-warnings' in addition to |
| @@ -2759,7 +2380,6 @@ the existing warnings for 'let' and 'let*'. Example: | |||
| 2759 | This warning can be suppressed using 'with-suppressed-warnings' with | 2380 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2760 | the warning name 'empty-body'. | 2381 | the warning name 'empty-body'. |
| 2761 | 2382 | ||
| 2762 | --- | ||
| 2763 | *** Warn about quoted error names in 'condition-case' and 'ignore-error'. | 2383 | *** Warn about quoted error names in 'condition-case' and 'ignore-error'. |
| 2764 | The compiler now warns about quoted condition (error) names | 2384 | The compiler now warns about quoted condition (error) names |
| 2765 | in 'condition-case' and 'ignore-error'. Example: | 2385 | in 'condition-case' and 'ignore-error'. Example: |
| @@ -2771,7 +2391,6 @@ in 'condition-case' and 'ignore-error'. Example: | |||
| 2771 | Quoting them adds the error name 'quote' to those handled or ignored | 2391 | Quoting them adds the error name 'quote' to those handled or ignored |
| 2772 | respectively, which was probably not intended. | 2392 | respectively, which was probably not intended. |
| 2773 | 2393 | ||
| 2774 | --- | ||
| 2775 | *** Warn about comparison with literal constants without defined identity. | 2394 | *** Warn about comparison with literal constants without defined identity. |
| 2776 | The compiler now warns about comparisons by identity with a literal | 2395 | The compiler now warns about comparisons by identity with a literal |
| 2777 | string, cons, vector, record, function, large integer or float as this | 2396 | string, cons, vector, record, function, large integer or float as this |
| @@ -2792,7 +2411,6 @@ compared reliably at all. | |||
| 2792 | This warning can be suppressed using 'with-suppressed-warnings' with | 2411 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2793 | the warning name 'suspicious'. | 2412 | the warning name 'suspicious'. |
| 2794 | 2413 | ||
| 2795 | --- | ||
| 2796 | *** Warn about 'condition-case' without handlers. | 2414 | *** Warn about 'condition-case' without handlers. |
| 2797 | The compiler now warns when the 'condition-case' form is used without | 2415 | The compiler now warns when the 'condition-case' form is used without |
| 2798 | any actual handlers, as in | 2416 | any actual handlers, as in |
| @@ -2807,7 +2425,6 @@ was to catch all errors, add an explicit handler for 'error', or use | |||
| 2807 | This warning can be suppressed using 'with-suppressed-warnings' with | 2425 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2808 | the warning name 'suspicious'. | 2426 | the warning name 'suspicious'. |
| 2809 | 2427 | ||
| 2810 | --- | ||
| 2811 | *** Warn about 'unwind-protect' without unwind forms. | 2428 | *** Warn about 'unwind-protect' without unwind forms. |
| 2812 | The compiler now warns when the 'unwind-protect' form is used without | 2429 | The compiler now warns when the 'unwind-protect' form is used without |
| 2813 | any unwind forms, as in | 2430 | any unwind forms, as in |
| @@ -2822,7 +2439,6 @@ simplified away. | |||
| 2822 | This warning can be suppressed using 'with-suppressed-warnings' with | 2439 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2823 | the warning name 'suspicious'. | 2440 | the warning name 'suspicious'. |
| 2824 | 2441 | ||
| 2825 | --- | ||
| 2826 | *** Warn about useless trailing 'cond' clauses. | 2442 | *** Warn about useless trailing 'cond' clauses. |
| 2827 | The compiler now warns when a 'cond' form contains clauses following a | 2443 | The compiler now warns when a 'cond' form contains clauses following a |
| 2828 | default (unconditional) clause. Example: | 2444 | default (unconditional) clause. Example: |
| @@ -2837,7 +2453,6 @@ perhaps due to misplaced parens. | |||
| 2837 | This warning can be suppressed using 'with-suppressed-warnings' with | 2453 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2838 | the warning name 'suspicious'. | 2454 | the warning name 'suspicious'. |
| 2839 | 2455 | ||
| 2840 | --- | ||
| 2841 | *** Warn about mutation of constant values. | 2456 | *** Warn about mutation of constant values. |
| 2842 | The compiler now warns about code that modifies program constants in | 2457 | The compiler now warns about code that modifies program constants in |
| 2843 | some obvious cases. Examples: | 2458 | some obvious cases. Examples: |
| @@ -2857,7 +2472,6 @@ instead. | |||
| 2857 | This warning can be suppressed using 'with-suppressed-warnings' with | 2472 | This warning can be suppressed using 'with-suppressed-warnings' with |
| 2858 | the warning name 'mutate-constant'. | 2473 | the warning name 'mutate-constant'. |
| 2859 | 2474 | ||
| 2860 | --- | ||
| 2861 | *** Warn about more ignored function return values. | 2475 | *** Warn about more ignored function return values. |
| 2862 | The compiler now warns when the return value from certain functions is | 2476 | The compiler now warns when the return value from certain functions is |
| 2863 | implicitly ignored. Example: | 2477 | implicitly ignored. Example: |
| @@ -2875,7 +2489,6 @@ name 'ignored-return-value'. | |||
| 2875 | The warning will only be issued for calls to functions declared | 2489 | The warning will only be issued for calls to functions declared |
| 2876 | 'important-return-value' or 'side-effect-free' (but not 'error-free'). | 2490 | 'important-return-value' or 'side-effect-free' (but not 'error-free'). |
| 2877 | 2491 | ||
| 2878 | --- | ||
| 2879 | *** Warn about docstrings that contain control characters. | 2492 | *** Warn about docstrings that contain control characters. |
| 2880 | The compiler now warns about docstrings with control characters other | 2493 | The compiler now warns about docstrings with control characters other |
| 2881 | than newline and tab. This is often a result of improper escaping. | 2494 | than newline and tab. This is often a result of improper escaping. |
| @@ -2890,11 +2503,9 @@ where the docstring contains the four control characters 'CR', 'DEL', | |||
| 2890 | 2503 | ||
| 2891 | The warning name is 'docstrings-control-chars'. | 2504 | The warning name is 'docstrings-control-chars'. |
| 2892 | 2505 | ||
| 2893 | --- | ||
| 2894 | *** The warning about wide docstrings can now be disabled separately. | 2506 | *** The warning about wide docstrings can now be disabled separately. |
| 2895 | Its warning name is 'docstrings-wide'. | 2507 | Its warning name is 'docstrings-wide'. |
| 2896 | 2508 | ||
| 2897 | +++ | ||
| 2898 | ** 'fset', 'defalias' and 'defvaralias' now signal an error for cyclic aliases. | 2509 | ** 'fset', 'defalias' and 'defvaralias' now signal an error for cyclic aliases. |
| 2899 | Previously, 'fset', 'defalias' and 'defvaralias' could be made to | 2510 | Previously, 'fset', 'defalias' and 'defvaralias' could be made to |
| 2900 | build circular function and variable indirection chains as in | 2511 | build circular function and variable indirection chains as in |
| @@ -2911,25 +2522,20 @@ Their 'noerror' arguments have no effect and are therefore obsolete. | |||
| 2911 | 2522 | ||
| 2912 | ** Touch Screen support | 2523 | ** Touch Screen support |
| 2913 | 2524 | ||
| 2914 | +++ | ||
| 2915 | *** 'x-popup-menu' now understands touch screen events. | 2525 | *** 'x-popup-menu' now understands touch screen events. |
| 2916 | When a 'touchscreen-begin' or 'touchscreen-end' event is passed as the | 2526 | When a 'touchscreen-begin' or 'touchscreen-end' event is passed as the |
| 2917 | POSITION argument, it will behave as if that event was a mouse event. | 2527 | POSITION argument, it will behave as if that event was a mouse event. |
| 2918 | 2528 | ||
| 2919 | +++ | ||
| 2920 | *** New functions for handling touch screen events. | 2529 | *** New functions for handling touch screen events. |
| 2921 | The new functions 'touch-screen-track-tap' and 'touch-screen-track-drag' | 2530 | The new functions 'touch-screen-track-tap' and 'touch-screen-track-drag' |
| 2922 | handle tracking common touch screen gestures from within a command. | 2531 | handle tracking common touch screen gestures from within a command. |
| 2923 | 2532 | ||
| 2924 | +++ | ||
| 2925 | *** New parameter to 'touchscreen-end' events. | 2533 | *** New parameter to 'touchscreen-end' events. |
| 2926 | CANCEL non-nil establishes that the touch sequence has been intercepted | 2534 | CANCEL non-nil establishes that the touch sequence has been intercepted |
| 2927 | by programs such as window managers and should be ignored with Emacs. | 2535 | by programs such as window managers and should be ignored with Emacs. |
| 2928 | 2536 | ||
| 2929 | --- | ||
| 2930 | ** New variable 'inhibit-auto-fill' to temporarily prevent auto-fill. | 2537 | ** New variable 'inhibit-auto-fill' to temporarily prevent auto-fill. |
| 2931 | 2538 | ||
| 2932 | +++ | ||
| 2933 | ** New variable 'secondary-tool-bar-map'. | 2539 | ** New variable 'secondary-tool-bar-map'. |
| 2934 | If non-nil, this variable contains a keymap of menu items that are | 2540 | If non-nil, this variable contains a keymap of menu items that are |
| 2935 | displayed along tool bar items defined by 'tool-bar-map'. These items | 2541 | displayed along tool bar items defined by 'tool-bar-map'. These items |
| @@ -2937,7 +2543,6 @@ are displayed below the tool bar if the value of 'tool-bar-position' is | |||
| 2937 | 'top', and above it if the value is 'bottom'. This is used by | 2543 | 'top', and above it if the value is 'bottom'. This is used by |
| 2938 | 'modifier-bar-mode'. | 2544 | 'modifier-bar-mode'. |
| 2939 | 2545 | ||
| 2940 | --- | ||
| 2941 | ** New variable 'completion-lazy-hilit'. | 2546 | ** New variable 'completion-lazy-hilit'. |
| 2942 | Lisp programs that present completion candidates may bind this | 2547 | Lisp programs that present completion candidates may bind this |
| 2943 | variable non-nil around calls to functions such as | 2548 | variable non-nil around calls to functions such as |
| @@ -2946,12 +2551,10 @@ styles to skip eager fontification of completion candidates, which | |||
| 2946 | improves performance. Such a Lisp program can then use the | 2551 | improves performance. Such a Lisp program can then use the |
| 2947 | 'completion-lazy-hilit' function to fontify candidates just in time. | 2552 | 'completion-lazy-hilit' function to fontify candidates just in time. |
| 2948 | 2553 | ||
| 2949 | +++ | ||
| 2950 | ** New primitive 'buffer-last-name'. | 2554 | ** New primitive 'buffer-last-name'. |
| 2951 | It returns the name of a buffer before the last time it was renamed or | 2555 | It returns the name of a buffer before the last time it was renamed or |
| 2952 | killed. | 2556 | killed. |
| 2953 | 2557 | ||
| 2954 | +++ | ||
| 2955 | ** New primitive 'marker-last-position'. | 2558 | ** New primitive 'marker-last-position'. |
| 2956 | It returns the last position of a marker in its buffer even if that | 2559 | It returns the last position of a marker in its buffer even if that |
| 2957 | buffer has been killed. ('marker-position' would return nil in that | 2560 | buffer has been killed. ('marker-position' would return nil in that |
| @@ -2959,34 +2562,28 @@ case.) | |||
| 2959 | 2562 | ||
| 2960 | ** Functions and variables to transpose sexps | 2563 | ** Functions and variables to transpose sexps |
| 2961 | 2564 | ||
| 2962 | --- | ||
| 2963 | *** New helper variable 'transpose-sexps-function'. | 2565 | *** New helper variable 'transpose-sexps-function'. |
| 2964 | Lisp programs can now set this variable to customize the behavior of the | 2566 | Lisp programs can now set this variable to customize the behavior of the |
| 2965 | 'transpose-sexps' command. | 2567 | 'transpose-sexps' command. |
| 2966 | 2568 | ||
| 2967 | --- | ||
| 2968 | *** New function 'transpose-sexps-default-function'. | 2569 | *** New function 'transpose-sexps-default-function'. |
| 2969 | The previous implementation of 'transpose-sexps' was moved into its own | 2570 | The previous implementation of 'transpose-sexps' was moved into its own |
| 2970 | function, to be used in 'transpose-sexps-function'. | 2571 | function, to be used in 'transpose-sexps-function'. |
| 2971 | 2572 | ||
| 2972 | --- | ||
| 2973 | *** New function 'treesit-transpose-sexps'. | 2573 | *** New function 'treesit-transpose-sexps'. |
| 2974 | Tree-sitter now unconditionally sets 'transpose-sexps-function' for all | 2574 | Tree-sitter now unconditionally sets 'transpose-sexps-function' for all |
| 2975 | tree-sitter enabled modes to this function. | 2575 | tree-sitter enabled modes to this function. |
| 2976 | 2576 | ||
| 2977 | ** Functions and variables to move by program statements | 2577 | ** Functions and variables to move by program statements |
| 2978 | 2578 | ||
| 2979 | +++ | ||
| 2980 | *** New variable 'forward-sentence-function'. | 2579 | *** New variable 'forward-sentence-function'. |
| 2981 | Major modes can now set this variable to customize the behavior of the | 2580 | Major modes can now set this variable to customize the behavior of the |
| 2982 | 'forward-sentence' command. | 2581 | 'forward-sentence' command. |
| 2983 | 2582 | ||
| 2984 | --- | ||
| 2985 | *** New function 'forward-sentence-default-function'. | 2583 | *** New function 'forward-sentence-default-function'. |
| 2986 | The previous implementation of 'forward-sentence' is moved into its | 2584 | The previous implementation of 'forward-sentence' is moved into its |
| 2987 | own function, to be bound by 'forward-sentence-function'. | 2585 | own function, to be bound by 'forward-sentence-function'. |
| 2988 | 2586 | ||
| 2989 | +++ | ||
| 2990 | *** New function 'treesit-forward-sentence'. | 2587 | *** New function 'treesit-forward-sentence'. |
| 2991 | All tree-sitter enabled modes that define 'sentence' in | 2588 | All tree-sitter enabled modes that define 'sentence' in |
| 2992 | 'treesit-thing-settings' now set 'forward-sentence-function' to call | 2589 | 'treesit-thing-settings' now set 'forward-sentence-function' to call |
| @@ -2994,13 +2591,11 @@ All tree-sitter enabled modes that define 'sentence' in | |||
| 2994 | 2591 | ||
| 2995 | ** Functions and variables to move by program sexps | 2592 | ** Functions and variables to move by program sexps |
| 2996 | 2593 | ||
| 2997 | +++ | ||
| 2998 | *** New function 'treesit-forward-sexp'. | 2594 | *** New function 'treesit-forward-sexp'. |
| 2999 | Tree-sitter conditionally sets 'forward-sexp-function' for major modes | 2595 | Tree-sitter conditionally sets 'forward-sexp-function' for major modes |
| 3000 | that have defined 'sexp' in 'treesit-thing-settings' to enable | 2596 | that have defined 'sexp' in 'treesit-thing-settings' to enable |
| 3001 | sexp-related motion commands. | 2597 | sexp-related motion commands. |
| 3002 | 2598 | ||
| 3003 | --- | ||
| 3004 | ** New user option 'native-comp-async-warnings-errors-kind'. | 2599 | ** New user option 'native-comp-async-warnings-errors-kind'. |
| 3005 | It allows control of what kinds of warnings and errors from asynchronous | 2600 | It allows control of what kinds of warnings and errors from asynchronous |
| 3006 | native compilation are reported to the parent Emacs process. The | 2601 | native compilation are reported to the parent Emacs process. The |
| @@ -3011,7 +2606,6 @@ and see if you get only warnings that matter. | |||
| 3011 | 2606 | ||
| 3012 | ** Function 'declare' forms | 2607 | ** Function 'declare' forms |
| 3013 | 2608 | ||
| 3014 | +++ | ||
| 3015 | *** New 'ftype' function declaration. | 2609 | *** New 'ftype' function declaration. |
| 3016 | The declaration '(ftype TYPE)' specifies the type of a function. | 2610 | The declaration '(ftype TYPE)' specifies the type of a function. |
| 3017 | Example: | 2611 | Example: |
| @@ -3027,24 +2621,20 @@ native compiler to produce better code, but specifying an incorrect type | |||
| 3027 | may lead to Emacs crashing. See the Info node "(elisp) Declare Form" | 2621 | may lead to Emacs crashing. See the Info node "(elisp) Declare Form" |
| 3028 | for further information. | 2622 | for further information. |
| 3029 | 2623 | ||
| 3030 | +++ | ||
| 3031 | *** New 'important-return-value' function declaration and property. | 2624 | *** New 'important-return-value' function declaration and property. |
| 3032 | The declaration '(important-return-value t)' sets the | 2625 | The declaration '(important-return-value t)' sets the |
| 3033 | 'important-return-value' property which indicates that the function | 2626 | 'important-return-value' property which indicates that the function |
| 3034 | return value should probably not be thrown away implicitly. | 2627 | return value should probably not be thrown away implicitly. |
| 3035 | 2628 | ||
| 3036 | +++ | ||
| 3037 | ** New functions 'file-user-uid' and 'file-group-gid'. | 2629 | ** New functions 'file-user-uid' and 'file-group-gid'. |
| 3038 | These functions are like 'user-uid' and 'group-gid', respectively, but | 2630 | These functions are like 'user-uid' and 'group-gid', respectively, but |
| 3039 | are aware of file name handlers, so they will return the remote UID or | 2631 | are aware of file name handlers, so they will return the remote UID or |
| 3040 | GID for remote files (or -1 if the connection has no associated user). | 2632 | GID for remote files (or -1 if the connection has no associated user). |
| 3041 | 2633 | ||
| 3042 | +++ | ||
| 3043 | ** 'treesit-font-lock-rules' now accepts additional global keywords. | 2634 | ** 'treesit-font-lock-rules' now accepts additional global keywords. |
| 3044 | When supplied with ':default-language LANGUAGE', rules after it will | 2635 | When supplied with ':default-language LANGUAGE', rules after it will |
| 3045 | default to use 'LANGUAGE'. | 2636 | default to use 'LANGUAGE'. |
| 3046 | 2637 | ||
| 3047 | --- | ||
| 3048 | ** New optional argument to 'modify-dir-local-variable'. | 2638 | ** New optional argument to 'modify-dir-local-variable'. |
| 3049 | An optional 5th argument FILE has been added to | 2639 | An optional 5th argument FILE has been added to |
| 3050 | 'modify-dir-local-variable'. It can be used to specify which file to | 2640 | 'modify-dir-local-variable'. It can be used to specify which file to |
| @@ -3052,7 +2642,6 @@ modify instead of the default ".dir-locals.el". | |||
| 3052 | 2642 | ||
| 3053 | ** Connection local variables | 2643 | ** Connection local variables |
| 3054 | 2644 | ||
| 3055 | +++ | ||
| 3056 | *** New macros 'connection-local-p' and 'connection-local-value'. | 2645 | *** New macros 'connection-local-p' and 'connection-local-value'. |
| 3057 | The former macro returns non-nil if a variable has a connection-local | 2646 | The former macro returns non-nil if a variable has a connection-local |
| 3058 | binding. The latter macro returns the connection-local value of a | 2647 | binding. The latter macro returns the connection-local value of a |
| @@ -3060,14 +2649,12 @@ variable if any, or its current value. | |||
| 3060 | 2649 | ||
| 3061 | ** Hash tables | 2650 | ** Hash tables |
| 3062 | 2651 | ||
| 3063 | +++ | ||
| 3064 | *** ':rehash-size' and ':rehash-threshold' args no longer have any effect. | 2652 | *** ':rehash-size' and ':rehash-threshold' args no longer have any effect. |
| 3065 | These keyword arguments are now ignored by 'make-hash-table'. Emacs | 2653 | These keyword arguments are now ignored by 'make-hash-table'. Emacs |
| 3066 | manages the memory for all hash table objects in the same way. | 2654 | manages the memory for all hash table objects in the same way. |
| 3067 | The functions 'hash-table-rehash-size' and 'hash-table-rehash-threshold' | 2655 | The functions 'hash-table-rehash-size' and 'hash-table-rehash-threshold' |
| 3068 | remain for compatibility but now always return the old default values. | 2656 | remain for compatibility but now always return the old default values. |
| 3069 | 2657 | ||
| 3070 | +++ | ||
| 3071 | *** The printed representation has been shrunk and simplified. | 2658 | *** The printed representation has been shrunk and simplified. |
| 3072 | The 'test' parameter is omitted if it is 'eql' (the default), as is | 2659 | The 'test' parameter is omitted if it is 'eql' (the default), as is |
| 3073 | 'data' if empty. 'rehash-size', 'rehash-threshold' and 'size' are | 2660 | 'data' if empty. 'rehash-size', 'rehash-threshold' and 'size' are |
| @@ -3075,7 +2662,6 @@ always omitted, and ignored if present when the object is read back in. | |||
| 3075 | 2662 | ||
| 3076 | ** Obarrays | 2663 | ** Obarrays |
| 3077 | 2664 | ||
| 3078 | +++ | ||
| 3079 | *** New obarray type. | 2665 | *** New obarray type. |
| 3080 | Obarrays are now represented by an opaque type instead of using vectors. | 2666 | Obarrays are now represented by an opaque type instead of using vectors. |
| 3081 | They are created by 'obarray-make' and manage their internal storage | 2667 | They are created by 'obarray-make' and manage their internal storage |
| @@ -3091,14 +2677,11 @@ with something other than 0, as in '(make-vector N nil)', will no longer | |||
| 3091 | work, and should be rewritten to use 'obarray-make'. Alternatively, you | 2677 | work, and should be rewritten to use 'obarray-make'. Alternatively, you |
| 3092 | can fill the vector with 0. | 2678 | can fill the vector with 0. |
| 3093 | 2679 | ||
| 3094 | +++ | ||
| 3095 | *** New function 'obarray-clear' removes all symbols from an obarray. | 2680 | *** New function 'obarray-clear' removes all symbols from an obarray. |
| 3096 | 2681 | ||
| 3097 | --- | ||
| 3098 | *** 'obarray-size' and 'obarray-default-size' are now obsolete. | 2682 | *** 'obarray-size' and 'obarray-default-size' are now obsolete. |
| 3099 | They pertained to the internal storage size which is now irrelevant. | 2683 | They pertained to the internal storage size which is now irrelevant. |
| 3100 | 2684 | ||
| 3101 | +++ | ||
| 3102 | ** 'treesit-install-language-grammar' can handle local directory instead of URL. | 2685 | ** 'treesit-install-language-grammar' can handle local directory instead of URL. |
| 3103 | It is now possible to pass a directory of a local repository as URL | 2686 | It is now possible to pass a directory of a local repository as URL |
| 3104 | inside 'treesit-language-source-alist', so that calling | 2687 | inside 'treesit-language-source-alist', so that calling |
| @@ -3106,22 +2689,18 @@ inside 'treesit-language-source-alist', so that calling | |||
| 3106 | It may be useful, for example, for the purposes of bisecting a | 2689 | It may be useful, for example, for the purposes of bisecting a |
| 3107 | treesitter grammar. | 2690 | treesitter grammar. |
| 3108 | 2691 | ||
| 3109 | +++ | ||
| 3110 | ** New buffer-local variable 'tabulated-list-groups'. | 2692 | ** New buffer-local variable 'tabulated-list-groups'. |
| 3111 | It controls display and separate sorting of groups of entries. By | 2693 | It controls display and separate sorting of groups of entries. By |
| 3112 | default no grouping or sorting is done. | 2694 | default no grouping or sorting is done. |
| 3113 | 2695 | ||
| 3114 | +++ | ||
| 3115 | ** New variable 'revert-buffer-restore-functions'. | 2696 | ** New variable 'revert-buffer-restore-functions'. |
| 3116 | It helps to preserve various states after reverting the buffer. | 2697 | It helps to preserve various states after reverting the buffer. |
| 3117 | 2698 | ||
| 3118 | --- | ||
| 3119 | ** New text property 'context-menu-functions'. | 2699 | ** New text property 'context-menu-functions'. |
| 3120 | Like the variable with the same name, it adds menus from the list that | 2700 | Like the variable with the same name, it adds menus from the list that |
| 3121 | is the value of the property to context menus shown when clicking on the | 2701 | is the value of the property to context menus shown when clicking on the |
| 3122 | text which as this property. | 2702 | text which as this property. |
| 3123 | 2703 | ||
| 3124 | --- | ||
| 3125 | ** Detecting the end of an iteration of a keyboard macro. | 2704 | ** Detecting the end of an iteration of a keyboard macro. |
| 3126 | 'read-event', 'read-char', and 'read-char-exclusive' no longer return -1 | 2705 | 'read-event', 'read-char', and 'read-char-exclusive' no longer return -1 |
| 3127 | when called at the end of an iteration of the execution of a keyboard | 2706 | when called at the end of an iteration of the execution of a keyboard |
| @@ -3133,7 +2712,6 @@ aforementioned functions: | |||
| 3133 | (and (arrayp executing-kbd-macro) | 2712 | (and (arrayp executing-kbd-macro) |
| 3134 | (>= executing-kbd-macro-index (length executing-kbd-macro))) | 2713 | (>= executing-kbd-macro-index (length executing-kbd-macro))) |
| 3135 | 2714 | ||
| 3136 | +++ | ||
| 3137 | ** 'vtable-update-object' updates an existing object with just two arguments. | 2715 | ** 'vtable-update-object' updates an existing object with just two arguments. |
| 3138 | It is now possible to update the representation of an object in a vtable | 2716 | It is now possible to update the representation of an object in a vtable |
| 3139 | by calling 'vtable-update-object' with just the vtable and the object as | 2717 | by calling 'vtable-update-object' with just the vtable and the object as |
| @@ -3142,7 +2720,6 @@ this case, would mean repeating the object in the argument list.) When | |||
| 3142 | replacing an object with a different one, passing both the new and old | 2720 | replacing an object with a different one, passing both the new and old |
| 3143 | objects is still necessary. | 2721 | objects is still necessary. |
| 3144 | 2722 | ||
| 3145 | +++ | ||
| 3146 | ** 'vtable-insert-object' can insert "before" or at an index. | 2723 | ** 'vtable-insert-object' can insert "before" or at an index. |
| 3147 | The signature of 'vtable-insert-object' has changed and is now: | 2724 | The signature of 'vtable-insert-object' has changed and is now: |
| 3148 | 2725 | ||
| @@ -3155,7 +2732,6 @@ this was not possible.) In addition, LOCATION can be an integer, a | |||
| 3155 | (zero-based) index into the table at which the new object is inserted | 2732 | (zero-based) index into the table at which the new object is inserted |
| 3156 | (BEFORE is ignored in this case). | 2733 | (BEFORE is ignored in this case). |
| 3157 | 2734 | ||
| 3158 | +++ | ||
| 3159 | ** New function 'sqlite-execute-batch'. | 2735 | ** New function 'sqlite-execute-batch'. |
| 3160 | This function lets the user execute multiple SQL statements in one go. | 2736 | This function lets the user execute multiple SQL statements in one go. |
| 3161 | It is useful, for example, when a Lisp program needs to evaluate an | 2737 | It is useful, for example, when a Lisp program needs to evaluate an |
| @@ -3163,45 +2739,37 @@ entire SQL file. | |||
| 3163 | 2739 | ||
| 3164 | ** JSON | 2740 | ** JSON |
| 3165 | 2741 | ||
| 3166 | +++ | ||
| 3167 | *** 'json-serialize' now always returns a unibyte string. | 2742 | *** 'json-serialize' now always returns a unibyte string. |
| 3168 | This is appropriate since it is an encoding operation. In the unlikely | 2743 | This is appropriate since it is an encoding operation. In the unlikely |
| 3169 | event that a multibyte string is needed, the result can be decoded using | 2744 | event that a multibyte string is needed, the result can be decoded using |
| 3170 | 2745 | ||
| 3171 | (decode-coding-string RESULT 'utf-8) | 2746 | (decode-coding-string RESULT 'utf-8) |
| 3172 | 2747 | ||
| 3173 | --- | ||
| 3174 | *** The parser keeps duplicated object keys in alist and plist output. | 2748 | *** The parser keeps duplicated object keys in alist and plist output. |
| 3175 | A JSON object such as '{"a":1,"a":2}' will now be translated into the | 2749 | A JSON object such as '{"a":1,"a":2}' will now be translated into the |
| 3176 | Lisp values '((a . 1) (a . 2))' or '(:a 1 :a 2)' if alist or plist | 2750 | Lisp values '((a . 1) (a . 2))' or '(:a 1 :a 2)' if alist or plist |
| 3177 | object types are requested. | 2751 | object types are requested. |
| 3178 | 2752 | ||
| 3179 | --- | ||
| 3180 | *** The parser sometimes signals different types of errors. | 2753 | *** The parser sometimes signals different types of errors. |
| 3181 | It will now signal 'json-utf8-decode-error' for inputs that are not | 2754 | It will now signal 'json-utf8-decode-error' for inputs that are not |
| 3182 | correctly UTF-8 encoded. | 2755 | correctly UTF-8 encoded. |
| 3183 | 2756 | ||
| 3184 | --- | ||
| 3185 | *** The parser and encoder now accept arbitrarily large integers. | 2757 | *** The parser and encoder now accept arbitrarily large integers. |
| 3186 | Previously, they were limited to the range of signed 64-bit integers. | 2758 | Previously, they were limited to the range of signed 64-bit integers. |
| 3187 | 2759 | ||
| 3188 | ** New tree-sitter functions and variables for defining and using "things" | 2760 | ** New tree-sitter functions and variables for defining and using "things" |
| 3189 | 2761 | ||
| 3190 | +++ | ||
| 3191 | *** New variable 'treesit-thing-settings'. | 2762 | *** New variable 'treesit-thing-settings'. |
| 3192 | It allows modes to define "things" like 'defun', 'text', 'sexp', and | 2763 | It allows modes to define "things" like 'defun', 'text', 'sexp', and |
| 3193 | 'sentence' for navigation commands and tree-traversal functions. | 2764 | 'sentence' for navigation commands and tree-traversal functions. |
| 3194 | 2765 | ||
| 3195 | +++ | ||
| 3196 | *** New functions for navigating "things". | 2766 | *** New functions for navigating "things". |
| 3197 | There are new navigation functions 'treesit-thing-prev', | 2767 | There are new navigation functions 'treesit-thing-prev', |
| 3198 | 'treesit-thing-next', 'treesit-navigate-thing', | 2768 | 'treesit-thing-next', 'treesit-navigate-thing', |
| 3199 | 'treesit-beginning-of-thing', and 'treesit-end-of-thing'. | 2769 | 'treesit-beginning-of-thing', and 'treesit-end-of-thing'. |
| 3200 | 2770 | ||
| 3201 | +++ | ||
| 3202 | *** New functions 'treesit-thing-at', 'treesit-thing-at-point'. | 2771 | *** New functions 'treesit-thing-at', 'treesit-thing-at-point'. |
| 3203 | 2772 | ||
| 3204 | +++ | ||
| 3205 | *** Tree-traversing functions. | 2773 | *** Tree-traversing functions. |
| 3206 | The functions 'treesit-search-subtree', 'treesit-search-forward', | 2774 | The functions 'treesit-search-subtree', 'treesit-search-forward', |
| 3207 | 'treesit-search-forward-goto', and 'treesit-induce-sparse-tree' now | 2775 | 'treesit-search-forward-goto', and 'treesit-induce-sparse-tree' now |
| @@ -3211,14 +2779,12 @@ for the predicate argument. | |||
| 3211 | 2779 | ||
| 3212 | ** Other tree-sitter function and variable changes | 2780 | ** Other tree-sitter function and variable changes |
| 3213 | 2781 | ||
| 3214 | +++ | ||
| 3215 | *** 'treesit-parser-list' now takes additional optional arguments. | 2782 | *** 'treesit-parser-list' now takes additional optional arguments. |
| 3216 | The additional arguments are LANGUAGE and TAG. If LANGUAGE is given, | 2783 | The additional arguments are LANGUAGE and TAG. If LANGUAGE is given, |
| 3217 | only return parsers for that language. If TAG is given, only return | 2784 | only return parsers for that language. If TAG is given, only return |
| 3218 | parsers with that tag. Note that passing nil as tag doesn't mean return | 2785 | parsers with that tag. Note that passing nil as tag doesn't mean return |
| 3219 | all parsers, but rather "all parsers with no tags". | 2786 | all parsers, but rather "all parsers with no tags". |
| 3220 | 2787 | ||
| 3221 | +++ | ||
| 3222 | *** New variable 'treesit-primary-parser'. | 2788 | *** New variable 'treesit-primary-parser'. |
| 3223 | This variable should be set by multi-langauge major modes before calling | 2789 | This variable should be set by multi-langauge major modes before calling |
| 3224 | 'treesit-major-mode-setup', in order for tree-sitter integration | 2790 | 'treesit-major-mode-setup', in order for tree-sitter integration |
| @@ -3229,7 +2795,6 @@ functionalities to operate correctly. | |||
| 3229 | 2795 | ||
| 3230 | ** MS-Windows | 2796 | ** MS-Windows |
| 3231 | 2797 | ||
| 3232 | +++ | ||
| 3233 | *** You can now opt out of following MS-Windows' Dark mode. | 2798 | *** You can now opt out of following MS-Windows' Dark mode. |
| 3234 | By default, Emacs on MS-Windows follows the system's Dark mode for its | 2799 | By default, Emacs on MS-Windows follows the system's Dark mode for its |
| 3235 | title bars' and scroll bars' appearance. If the new user option | 2800 | title bars' and scroll bars' appearance. If the new user option |
| @@ -3237,7 +2802,6 @@ title bars' and scroll bars' appearance. If the new user option | |||
| 3237 | will disregard the system's Dark mode and will always use the default | 2802 | will disregard the system's Dark mode and will always use the default |
| 3238 | Light mode. | 2803 | Light mode. |
| 3239 | 2804 | ||
| 3240 | --- | ||
| 3241 | *** You can now use Image-Dired even if the 'convert' program is not installed. | 2805 | *** You can now use Image-Dired even if the 'convert' program is not installed. |
| 3242 | If you don't have GraphicsMagick or ImageMagick installed, and thus the | 2806 | If you don't have GraphicsMagick or ImageMagick installed, and thus the |
| 3243 | 'gm convert'/'convert' program is not available, Emacs on MS-Windows | 2807 | 'gm convert'/'convert' program is not available, Emacs on MS-Windows |
| @@ -3246,7 +2810,6 @@ thumbnail images and show them in the thumbnail buffer. Unlike with | |||
| 3246 | using 'convert', this fallback method is synchronous, so Emacs will wait | 2810 | using 'convert', this fallback method is synchronous, so Emacs will wait |
| 3247 | until all the thumbnails are created and displayed, before showing them. | 2811 | until all the thumbnails are created and displayed, before showing them. |
| 3248 | 2812 | ||
| 3249 | --- | ||
| 3250 | *** Emacs on MS-Windows now supports the ':stipple' face attribute. | 2813 | *** Emacs on MS-Windows now supports the ':stipple' face attribute. |
| 3251 | 2814 | ||
| 3252 | 2815 | ||