Release 22.05 Highlights

Helix 是一款模式化文本编辑器,内置支持多重选择、 语言服务器协议 (LSP)、tree-sitter,并实验性地支持调试适配器协议 (DAP)。

今天发布了 22.05 版本,这是一个功能丰富的版本,参与贡献者人数是上一版本的两倍多(110 人!)。 非常感谢所有参与者!🙌

还要特别感谢 @amirrezaask 制作的精彩 Helix 介绍视频!还要特别感谢 @amirrezaask 制作的精彩 Helix 介绍视频

让我们来看看 22.05 版本的炫酷功能。

缩进重构

缩进系统已全面重构。缩进功能仍然通过查询文档的 Tree-sitter 解析语法树来实现, 但现在查询文件可以使用 Tree-sitter 查询语言的全部表达能力,而不仅仅是简单的节点名称。 预计新的缩进系统将更加稳健,并能更好地处理各种特殊情况。

可配置的 gutters

现在您可以在 config.toml 文件中配置边栏。例如,您可以移除行号边栏,同时仍然显示 LSP 诊断信息。

[editor]
gutters = ["diagnostics"] # default is ["diagnostics", "line-numbers"]

本地语言配置

现在可以为每个项目单独指定语言配置。创建一个 .helix 目录,并在其中创建一个 languages.toml 文件, 以覆盖默认语言配置中的值。例如,要将 C 项目的缩进方式从空格更改为制表符:

# my_c_project/.helix/languages.toml
[[language]]
name = "c"
indent = { tab-width = 8, unit = "\t" }

标尺

现在可以通过 rulers 选项配置垂直标尺。使用它们作为参考,以确保代码行不超过最大长度限制。

显示可见的空白字符

现在可以显示空格、制表符和换行符等空白字符。您可以使用 :set 命令在运行时设置 whitespace.render 选项,也可以在 config.toml 文件的编辑器部分进行设置。可见的空白字符指示符可以使 Helix 的选择模型更加 直观,尤其是在行尾附近。用于显示制表符、空格、不间断空格和换行符的字符也可以自定义,还可以选择是否显示这 些字符。事实上,在本篇文章的其余部分,您将看到我自定义的制表符和换行符!

Use registers in prompts

Values stored in registers may now be used in prompts like search or global search. In the above example, we yank a selection to the " register with y and then open up the global search prompt with Space /. The available registers are shown above the prompt and we hit " to insert the contents of the " register.

Reflow paragraphs

新的 :reflow 命令可以将文本按指定的列宽进行自动换行。 默认列宽可以根据不同的语言进行配置。该命令能够识别行之 间的匹配前缀,因此您可以对行注释、Markdown 引用或带 有前导空格的行进行换行,并且前导字符也会被正确地放置。

切换窗口

现在可以与相邻窗口交换位置,也可以调换窗口分割方向。 打开窗口菜单(使用 C-w空格 w),然后使用 HJKL 分别将当前窗口与左侧、下方、上方和右侧的相邻窗口交换位置。 使用 tC-t 可以在垂直分割和水平分割之间切换。

在运行时设置语言

现在可以在运行时设置缓冲区语言。使用 :set-language language(或简写为 :lang language)来设置语言并切换语言服务器。

总结

以上仅列举了 22.05 版本的一些主要更新亮点。请查看更新日志了解完整内容。您可以在[发布页面]下载 22.05 版本的二进制文件。从该版本开始,发布包中包含 AppImage 文件,方便 Linux 用户使用。

敬请期待 7 月份发布的 Helix 22.07 版本,届时将带来更多功能和改进。欢迎访问 GitHub 仓库 参与贡献并关注开发进展,也欢迎加入 Matrix 频道 参与讨论。