4.3 What is different about Emacs 29?
Here’s a list of the most important changes in Emacs 29 as compared to
Emacs 28 (the full list is too long, and can be read in the Emacs
NEWS file by typing C-h n inside Emacs).
- Emacs can now be built with the
tree-sitter
library, which provides incremental parsing capabilities for several
programming languages. Emacs comes with several major modes which use
this library for syntax highlighting (a.k.a. “fontification”),
indentation, Imenu support, etc. These modes have names
lang-ts-mode
, where lang is the programming
language. For example, c-ts-mode
, ruby-ts-mode
, etc.
There are several new font-lock faces, such as
font-lock-number-face
and font-lock-operator-face
,
intended to be used with these modes.
- Emacs can now be built in the PGTK (“pure GTK”) configuration, which
supports running Emacs on window systems other than X, such as Wayland
and Broadway.
- Emacs now has built-in support for accessing SQLite databases. This
requires Emacs to be built with the optional sqlite3 library.
- Emacs comes with the popular
use-package
package bundled.
- Emacs can now display WebP images, if it was built with the optional
libwebp library.
- On X window system, Emacs now supports the XInput2 specification for
input events.
- Emacs now comes with a client library for using Language Server
Protocol (LSP) servers. This library, named eglot.el
(the name stands for “Emacs polyGlot”) provides LSP support for
various software development and maintenance features, such as
xref
, Imenu, ElDoc, etc.
- Emacs can now cope with files with very long lines much better. It no
longer hangs when displaying such long lines, and allows
reasonably-responsive editing when such lines are present in the
visible portion of a buffer.
- Emacs now supports the latest version 15.0 of the Unicode Standard.
- The new mode
pixel-scroll-precision-mode
allows precise and
smooth scrolling of the display at pixel resolution, if your mouse
supports this.
- Emacs now supports 24-bit true colors on more terminals.
- On capable X terminal emulators, Emacs now supports setting the X
primary selection on TTY frames.
- New convenient commands are now available for inserting, searching,
listing, and describing Emoji. These commands are on the C-x 8 e prefix key. The commands C-u C-x =
(
what-cursor-position
) and M-x describe-char now show the
names of Emoji sequences at point.
- The Help commands were enhanced:
- - M-x apropos-variable shows the values of the matching variables.
- - C-h b activates
outline-minor-mode
in the buffer, which
makes it easier to browse long lists of key bindings.
- - I in the *Help* buffer displays the corresponding
documentation in the Emacs Lisp Reference manual.
- - New command
help-quick
displays a buffer with overview of
common Help commands.
- Outline Minor mode uses buttons to hide and show outlines.
- Deleted frames can now be undeleted using C-x 5 u, if the
optional
undelete-frame-mode
is enabled.
- You can now delete the entire composed sequence of characters with
Delete and edits the composed sequence by turning on the
composition-break-at-point
option.
- Support is added for many old scripts and writing systems, such as Tai
Tham, Brahmi, Tirhuta, Modi, Lepcha, and many others.
- New translations of the Emacs tutorial: Ukrainian and Greek.
- New major modes for Typescript, Csharp, CMake, Go, Rust, and Yaml.