根据 Emacs 开发者邮件列表的消息,Emacs 29 的开发已基本完成,不再增加任何新功能,未来主要集中在修复 bug 上面。
Emacs 29 重要变化包括:
- Eglot 现在是 Emacs 核心的一部分
Emacs 包含多个 LSP 集成,例如 LSP Mode、Eglot 和 lsp-bridge。从 Emacs 29 开始,Eglot 已成为 Emacs 核心的一部分,不再需要安装。只需注册一个 LSP 服务器,自动补全、文档、错误检测和其他功能将立即可用。
- 解析器生成器工具 Tree-Sitter 成为核心的一部分
Tree-Sitter 用于将编程语言解析为具体的语法树。基于它不仅可以快速完成语法高亮显示,还可以对代码进行更深入的分析,并且实现语法操作等需求,因为语法树本身可作为可以操作的对象使用。
Tree-Sitter 现在是 Emacs 中的原生解决方案。Emacs 的 Tree-Sitter 支持如下的主要模式:
bash-ts-mode
c-ts-mode
c++-ts-mode
csharp-ts-mode
css-ts-mode
java-ts-mode
js-ts-mode
json-ts-mode
python-ts-mode
typescript-ts-mode
如果迫不及待地想测试 Tree-Sitter,现在已经有另一个适用于 Emacs 的软件包可供使用。请注意,这与集成到 Emacs 中的包不同。
- 使用 package.el 可以直接从 Git 安装软件包
现在可以使用 Emacs 的内置打包系统package.el
直接从 Git 安装软件包。可以使用 new 函数来完成 package-vc-install
,并且可以使用package-vc-update
或package-vc-update-all
来更新以这种方式安装的软件包。
- 原生支持 Wayland
以前 Emacs 在 GUI 模式下依赖于 Xorg,随着 Wayland 的日益流行,Emacs 现在原生支持 Wayland。请注意,Wayland 基本上是纯 GTK Emacs 的唯一用例。如果不使用 Wayland,Emacs 将显示一条警告消息,因为如果运行的是 Xorg,它很可能会导致问题。
- 原生支持 SQLite
现在可以使用对 SQLite 和 sqlite3 库的原生支持来构建 Emacs,它允许使用者在 Emacs 中探索 SQLite 数据库并与它们交互。
- csharp-mode
csharp-mode
现在是 Emacs 的原生主要模式,并且基于cc-mode
。
- 支持 HaikuOS
- ……
点此查看更多新特性。