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.
+++
** Building Emacs now requires C99 or later.
++++
** Building Emacs now requires GNU make, version 3.81 or later.
** New configure option --with-cairo.
It has no particular connection to Emacs and has not changed in years,
so if you want to use it, you can always take a copy from an older Emacs.
+** Emacs 25 comes with a new set of icons.
+Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
+The old Emacs logo icons are available as `emacs23.png' in the same location.
+
\f
* Startup Changes in Emacs 25.1
\f
* Changes in Emacs 25.1
+** Any file of the form .dir-locals*.el is now considered a dir-local
+ file, and multiple can be used in the same directory. See the
+ variable `dir-locals-file' for more information.
** `xref-find-definitions' and `describe-function' now display
information about mode local overrides (defined by
cedet/mode-local.el `define-overloadable-function' and
** New doc command `describe-symbol'. Works for functions, vars, faces, etc...
+** New user option `search-default-regexp-mode' specifies the default mode for isearch
+
** `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
\f
* Changes in Specialized Modes and Packages in Emacs 25.1
+** New function `bookmark-set-no-overwrite' bound to C-x r M.
+It raises an error if a bookmark of that name already exists,
+unlike `bookmark-set' which silently updates an existing bookmark.
+
+** JSON
+---
+*** `json-pretty-print' and `json-pretty-print-buffer' now maintain
+the ordering of object keys by default.
+---
+*** New commands `json-pretty-print-ordered' and
+`json-pretty-print-buffer-ordered' pretty prints JSON objects with
+object keys sorted alphabetically.
+
** 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'.
(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'
** cl-lib
*** New functions cl-fresh-line, cl-digit-char-p and cl-parse-integer.
-** seq
-*** New seq library:
-The seq library adds sequence manipulation functions and macros that
-complement basic functions provided by subr.el. All functions are
-prefixed with `seq-' and work on lists, strings and vectors.
-
-** map
-*** New map library:
-The map library provides map-manipulation functions that work on alists,
-hash-table and arrays. All functions are prefixed with "map-".
-
** Calendar and diary
+++
** 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 "afp", which allows to access Mac OS X
+volumes via the Apple Filing Protocol.
+
++++
*** 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
** 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 event `stopped' signals, that a file notification watch is
+not active any longer.
+
++++
+*** The new function `file-notify-valid-p' checks, whether a file
+notification descriptor still corresponds to an activate watch.
+
+** Dired
+
++++
+*** The command `dired-do-compress' bound to `Z' now can compress
+directories and decompress zip files.
+
++++
+*** New command `dired-do-compress-to' bound to `c' can be used to
+compress many marked files into a single named archive. The
+compression command is determined from the new
+`dired-compress-files-alist' variable.
+
** Obsolete packages
---
forbidden by Czech and Polish typography (and may be discouraged in
other languages), so `auto-tildify-mode' makes it easier to create
a typographically-correct documents.
+
+** The `seq' library adds sequence manipulation functions and macros
+that complement basic functions provided by subr.el. All functions
+are prefixed with `seq-' and work on lists, strings and vectors.
+
+** The `map' library provides map-manipulation functions that work on
+alists, hash-table and arrays. All functions are prefixed with
+`map-'.
+
+** The `thunk' library provides functions and macros to control the
+evaluation of forms.
+
+** js-jsx-mode (a minor variant of js-mode) provides indentation
+support for JSX, an XML-like syntax extension to ECMAScript.
+
\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.
** The `diff' command uses the unified format now. To restore the old
behavior, set `diff-switches' to `-c'.
-** `grep-template' and `grep-find-template' values don't include the
---color argument anymore. It's added at the <C> place holder position
-dynamically.
-
** `grep-template' and `grep-find-template' values don't include the
--color argument anymore. It's added at the <C> place holder position
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 ‘/’.
+
++++
+** The `default-directory' value doesn't have to end slash. To make
+that happen, `unhandled-file-name-directory' now defaults to calling
+`file-name-as-directory'.
+
\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.
of the Emacs process to binary I/O mode.
** ASCII approximations to curved quotes are put in standard-display-table
-if the locale cannot display curved quotes, or if text-quoting-style
-initially specifies a preference for ASCII.
+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.