This file is about changes in Emacs version 25.
+See file HISTORY for a list of GNU Emacs versions and release dates.
See files NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
and NEWS.1-17 for changes in older Emacs versions.
and *Buffer List*. This makes Emacs convenient to use from the
command line when `initial-buffer-choice' is non-nil.
++++
+** The value of ‘initial-scratch-message’ is now treated as a doc string
+and can contain escape sequences for command keys, quotes, and the like.
+
\f
* Changes in Emacs 25.1
** `isearch' and `query-replace' now perform character folding in matches.
This is analogous to case-folding, but applies between Unicode
-characters and their ASCII counterparts. This means many characters
+characters and their ASCII counterparts. This means many characters
will match entire groups of characters.
For instance, the " will match all variants of unicode double quotes
cousins, even those composed of multiple characters, as well as many
other symbols like ℀, ℁, ⒜, and ⓐ.
-** New function `character-folded-regexp' can be used
-by searching commands to produce a a regexp matching anything that
+** New function `character-fold-to-regexp' can be used
+by searching commands to produce a regexp matching anything that
character-folds into STRING.
** New command `checkdoc-package-keywords' checks if the
-current package keywords are recognized. Set the new option
+current package keywords are recognized. Set the new option
`checkdoc-package-keywords-flag' to non-nil to make
`checkdoc-current-buffer' call this function automatically.
\f
* Changes in Specialized Modes and Packages in Emacs 25.1
+** JSON
+---
+*** `json-pretty-print' and `json-pretty-print-buffer' now maintain
+the ordering of object keys by default.
+
+** You can recompute the VC state of a file buffer with `M-x vc-refresh-state'
** Prog mode has some support for multi-mode indentation.
See `prog-indentation-context' and `prog-widen'.
-** Prettify Symbols mode supports custom composition predicates. By
+** Prettify Symbols mode
+*** Prettify Symbols mode supports custom composition predicates. By
overriding the default `prettify-symbols-compose-predicate', modes can
specify in which contexts a symbol map be composed to some unicode
character. `prettify-symbols-default-compose-p' is the default which
is suitable for most programming languages such as C or Lisp (but not
(La)TeX).
+*** Symbols can be unprettified while point is inside them.
+New variable `prettify-symbols-unprettify-at-point' configures this.
+
** New `xterm-screen-extra-capabilities' config.
** The `save-place' variable is replaced by a `save-place-mode'.
** ERC
-*** Hide message types by network or channel. `erc-hide-list' will
+*** Hide message types by network or channel. `erc-hide-list' will
hide all messages of the specified type, where `erc-network-hide-list'
and `erc-channel-hide-list' will only hide the specified message types
for the respective specified targets.
*** If a package is available on multiple archives and one has higher
priority (as per `package-archive-priorities') only that one is
-listed. This can be configured with `package-menu-hide-low-priority'.
+listed. This can be configured with `package-menu-hide-low-priority'.
*** `package-menu-toggle-hiding' now toggles the hiding of packages.
This includes the above-mentioned low-priority packages, as well as
*** New custom variable `package-selected-packages' tracks packages
which were installed by the user (as opposed to installed as
-dependencies). This variable can also be manually customized.
+dependencies). This variable can also be manually customized.
*** New command `package-install-user-selected-packages' installs all
packages from `package-selected-packages' which are currently missing.
(add-to-list 'display-buffer-alist
'("^\\*shell\\*$" . (display-buffer-same-window))).
-
** EIEIO
+++
*** The `:protection' slot option is not obeyed any more.
*** If `quick-calc' is called with a prefix argument, insert the
result of the calculation into the current buffer.
++++
+** In Edebug, you can now set the initial mode with C-x C-a C-m. With
+this you can tell Edebug not to stop at the start of the first
+instrumented function.
+
** ElDoc
*** New minor mode `global-eldoc-mode'
*** `eldoc-documentation-function' now defaults to `ignore'
** seq
*** New seq library:
The seq library adds sequence manipulation functions and macros that
-complement basic functions provided by subr.el. All functions are
+complement basic functions provided by subr.el. All functions are
prefixed with `seq-' and work on lists, strings and vectors.
** map
** SES now supports local printer functions; see `ses-define-local-printer'.
-** In sh-mode, you can now use `sh-shell' as a file-local variable to
+** sh-script
+*** In sh-mode you can now use `sh-shell' as a file-local variable to
specify the type of shell in use (bash, csh, etc).
+*** New value `always' for sh-indent-after-continuation.
+This provides old-style ("dumb") indentation of continued lines.
+
** TLS
---
*** Fatal TLS errors are now silent by default.
** Tramp
++++
*** New connection method "nc", which allows to access dumb busyboxes.
++++
*** Method-specific parameters can be overwritten now with variable
`tramp-connection-properties'.
+---
+*** Handler for `file-notify-valid-p' for remote machines that support
+filesystem notifications.
+
** SQL mode
*** New user variable `sql-default-directory' enables remote
interactive macro evaluation and automatic scanning of #defined symbols.
*** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
-name patterns. Default case-insensitive .h, .hh, .hpp and .hxx.
+name patterns. Default case-insensitive .h, .hh, .hpp, .hxx, and .h++.
*** New custom variable `hide-ifdef-expand-reinclusion-protection' to prevent
reinclusion protected header files from being fully hidden.
*** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol
-name patterns (e.x. all "FOR_DOXYGEN_ONLY_*") to be excluded.
+name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be excluded.
** TeX mode
** tar-mode: new `tar-new-entry' command, allowing for new members to
be added to the archive.
+---
** Autorevert: dired buffers are also auto-reverted via file
notifications, if Emacs is compiled with file notification support.
++++
+** File Notifications: the new function `file-notify-valid-p' checks,
+whether a file notification descriptor still corresponds to an
+activate watch.
+
** Obsolete packages
---
*** landmark.el (moved to elpa.gnu.org)
-+++
-** The character classes [:graph:] and [:print:] in regular expressions
-no longer match every multibyte character. Instead, Emacs now
-consults the Unicode character properties to determine which
-characters are graphic or printable. In particular, surrogates and
-unassigned codepoints are now rejected. If you want the old behavior,
-use [:multibyte:] instead.
-
\f
* New Modes and Packages in Emacs 25.1
\f
* Incompatible Lisp Changes in Emacs 25.1
+** `syntax-begin-function' is declared obsolete.
+Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN
+slot in font-lock-defaults.
+
++++
+** `package-initialize' now sets `package-enable-at-startup' to nil if
+called during startup. Users who call this function in their init
+file and still expect it to be run after startup should set
+`package-enable-at-startup' to t after the call to
+`package-initialize'.
+
** `:global' minor mode use `setq-default' rather than `setq'.
This means that you can't use `make-local-variable' and expect them to
"magically" become buffer-local.
If you want the old behavior where they matched any character with
word syntax, use `\sw' instead.
++++
+** The character classes [:graph:] and [:print:] in regular expressions
+no longer match every multibyte character. Instead, Emacs now
+consults the Unicode character properties to determine which
+characters are graphic or printable. In particular, surrogates and
+unassigned codepoints are now rejected. If you want the old behavior,
+use [:multibyte:] instead.
+
+++
** The `diff' command uses the unified format now. To restore the old
behavior, set `diff-switches' to `-c'.
dynamically. Any third-party code that changes these templates should
be updated accordingly.
++++
+** ‘(/ N)’ is now equivalent to ‘(/ 1 N)’ rather than to ‘(/ N 1)’.
+The new behavior is compatible with Common Lisp and with XEmacs.
+This change does not affect Lisp code intended to be portable to
+Emacs 24.2 and earlier, which did not support unary ‘/’.
+
\f
* Lisp Changes in Emacs 25.1
+** syntax-propertize is now automatically called on-demand during forward
+parsing functions like `forward-sexp'.
+
+** New hooks prefix-command-echo-keystrokes-functions and
+prefix-command-preserve-state-hook, to allow the definition of prefix
+commands other than the predefined C-u.
+
** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'.
** The default value of `load-read-function' is now `read'.
** New function `set-binary-mode' allows to switch a standard stream
of the Emacs process to binary I/O mode.
-** In locales that cannot display curved quotes, ASCII approximations
-are installed in standard-display-table.
+** ASCII approximations to curved quotes are put in standard-display-table
+if the terminal cannot display curved quotes.
** Standard output and error streams now transliterate characters via
standard-display-table, and encode output using locale-coding-system.