24.03 版本更新说明:
重大变更
语言配置中的文件类型键(file-types)中的后缀文件类型已被移除。
语言配置中的文件类型键(file-types)不再匹配没有通配符模式的完整文件名。
功能更新
可以通过 goto_file 命令打开 URLs
支持在弹出窗口和菜单周围绘制边框
跟踪长期存在的诊断源,如 Clippy 或 rustc
改进了来自仅在保存时更新诊断位置的源的诊断处理
添加对 LSP window/showDocument 请求的支持
重构临时钩子以使用新的通用事件系统
这改进了自动补全的行为。例如,在插入模式下导航不再自动触发补全。
允许在语言配置文件类型键中使用通配符
允许指定情境 LSP 激活所需的根目录
在选择模式下使用鼠标单击扩展选择
切换块注释
支持 LSP 诊断标签
添加一个文件绝对路径的状态栏元素
在 tree-sitter 移动中交叉注入层
添加一个类似 Amp-editor 的跳转命令
命令更新
:move - 移动具有 LSP 支持的缓冲区
同时参见 #8949,该更新使路径更改符合 LSP 规范,并修复了此命令的行为。
page_cursor_up, page_cursor_down, page_cursor_half_up, page_cursor_half_down - 用于同时滚动光标和页面的命令
:yank-diagnostic - 复制主要光标下的诊断信息
select_line_above / select_line_below - 根据方向和锚点扩展或缩小选区
易用性改进
在 languages.toml 配置文件中,将 [[language]] 条目的 roots 键设置为可选
在修改缓冲区的命令中退出选择模式
当失去焦点时,使用 crossterm 光标
在 join_selections 中将只包含一个空格的空行合并
引入混合 tree-sitter 和上下文缩进启发式
允许配置缩进启发式
在显示重命名提示之前检查 LSP 是否支持重命名
将 S-<小写 ascii> 键映射标准化为大写 ascii
在 --health 输出中添加格式化程序状态
更改路径标准化策略,不解析符号链接
在 :tree-sitter-subtree 中选择注入中的子树
对 $HELIX_RUNTIME 路径使用波浪线扩展和标准化
改善 LSP 跳转到引用的失败消息
使用注入语法树进行括号匹配
在 :tree-sitter-highlight-name 中尊重注入
在 move_parent_node_end 中尊重注入
使用 gix 管道过滤器代替手动 CRLF 实现
遵循 Neovim 的真彩色检测
使用 :reload 和 SIGHUP 重新加载语言配置
允许使用数字作为绑定
当 terminfo 不可用时,尊重 undercurl 配置
除了 .git 之外,还在配置为显示隐藏文件的文件选择器中忽略 .pijul、.hg 和 .jj
为 :clear-register 和 :yank-diagnostic 添加寄存器补全
对于转到下一个/上一个诊断,重复上次的运动
允许配置在渲染窄不换行空格时使用的字符
切换到流式正则表达式引擎,以显著加速基于正则表达式的命令和功能
修复内容
交换 * 和 + 寄存器的功能
使用 terminfo 来重置终端光标样式
修复 @align 捕获在缩进计算中的优先级问题
仅当选择器具有预览功能时才渲染预览
修复 ui.virtual.whitespace 的优先级问题
修复 :indent-style 命令中的崩溃问题
当同步能力为种类变体时,修复 didSave 文本包含问题
更新新聚焦视图的历史记录
打开文档时初始化诊断信息
在对未聚焦的视图应用编辑时同步视图
这修复了由 LSP 工作区编辑或 :write-all 可能导致的崩溃问题
将通过 CLI 传递的非数字 +args 视为文件名
修复在空纯文本文件上使用 mm 时的崩溃问题
在匹配括号时忽略空的 tree-sitter 节点
如果语言服务器发送包含无效 JSON 的消息,则退出该服务器
处理启用带括号的粘贴失败的情况
在模式中为所有捕获项设置 #is-not? 本地谓词
使路径更改符合 LSP 规范
使用范围位置来确定 insert_newline 运动
修复提示补全区域太小时除以零的错误
在可输入的剪贴板替换命令中添加历史记录更改
修复 DAP 中未指定行的断点导致的崩溃问题
修复 bash 补全中文件名的空格处理
将关键诊断信息关闭为路径而不是 LSP URI
修复使用 join_selections_space 时出现的恐慌(panic)问题
修复使用 surround_replace、surround_delete 时出现的恐慌问题
修复在具有嵌套包围和多光标的情况下使用 surround_replace、surround_delete 时出现的恐慌问题
修复 select_textobject_around 中的恐慌问题
在 :reload-all 命令中,当重新加载失败时,不要停止重新加载文档
防止 shell_keep_pipe 在非零退出状态码时停止执行
主题更新
添加 gruber-dark 主题
更新 everblush主题
更新 papercolor主题
添加 polmandres主题
添加 starlight主题
更新 naysayer主题
添加 modus operandi 系列主题
更新 rose_pine主题
更新 darcula主题
添加 modus vivendi 系列主题
添加 horizon-dark主题
更新 noctis主题
更新 nord主题
更新 monokai pro 系列主题
更新 tokyonight 系列主题
添加 ttox主题
添加 voxed主题
更新 sonokai主题
更新 onedark 和 onedarker主题
更新 cyan_light主题
添加 gruvbox_light_soft 和 gruvbox_light_hard主题
更新 GitHub 系列主题
添加 term16_dark 和 term16_light主题
更新 Zed 系列主题
添加 curzon主题
添加 monokai_soda主题
更新 catppuccin 系列主题
更新 rasmus主题
更新 dark_plus主题
更新 gruvbox 系列主题
为 dracula 主题添加跳转标签样式
为 horizon-dark 主题添加跳转标签样式
为 catppuccin 系列主题添加跳转标签样式
为 onedark 系列主题添加跳转标签样式
为 rose-pine 系列主题添加跳转标签样式
为 Nord 系列主题添加跳转标签样式
为 Monokai 系列主题添加跳转标签样式
为 gruvbox 系列主题添加跳转标签样式
为 kanagawa主题添加跳转标签样式
更新 material 系列主题
添加 jetbrains_dark主题
新增语言支持
Typst
LPF
GN
DBML
log
Janet
Agda
Avro
Smali
HOCON
Tact
PKL
CEL
SpiceDB
Hoon
DockerCompose
Groovy
FIDL
Powershell
ld
Hyperland 配置
JSONC
PHP Blade
SuperCollider
Koka
PKGBUILD
Ada
Helm 图表
Ember.js 模板
Ohm
更新语言和查询
为 Rust 添加 HTML 注入查询
将 RON 切换到 tree-sitter-ron
更新并改进注释高亮
在 Rust 中高亮类型参数
更换 KDL 的 tree-sitter 解析器
更新 tree-sitter-markdown
更新 tree-sitter-purescript
为 TypeScript、Go、Haskell、OCaml 和 Kotlin 添加类型参数高亮
使用 tree-sitter-scheme 为 Scheme 和 lisps 添加缩进查询
将 meson_options.txt 识别为 Meson
为 Nushell 添加语言服务器配置
将 musicxml 识别为 XML
更新 tree-sitter-rescript
更新 tree-sitter-python
将 .envrc.local 和 .envrc.private 识别为 env
更新 tree-sitter-gleam
更新 tree-sitter-d
修复 LSP 检测中的 R-markdown 语言名称
添加 haskell-language-server LSP 配置
将 glif 识别为 XML
将 .prettierrc 识别为 JSON
为 scheme 添加自动配对配置
为 Scala 添加文本对象查询
为 Protobuf 添加文本对象查询
更新 tree-sitter-wren
将 spago.yaml 添加为 PureScript 的 LSP 根目录
改进 Bash、Make 和 CSS 的高亮和缩进查询
更新 tree-sitter-scala
将 .bash_history 识别为 Bash
将 Helix 忽略文件识别为忽略文件
在 Scala SQL 字符串中注入 SQL
更新 gdscript 文本对象
更新 Go 查询
更新 tree-sitter-nushell
更新 tree-sitter-unison,添加缩进查询
更新 tree-sitter-slint
更新 tree-sitter-swift
为 fish 添加 fish_indent 作为格式化程序
将 zon 识别为 Zig
为 Odin 添加格式化程序
更新 tree-sitter-erlang
捕获 Rust 字段作为参数文本对象
改进 Dart 文本对象
将 tmux.conf 识别为 bash 文件类型
为 Nix 添加文本对象查询
为 HCL 添加文本对象查询
将 osm 和 osc 扩展名识别为 XML
更新 tree-sitter-sql
将 pde Processing 文件识别为 Java
更新 tree-sitter-lua
切换 tree-sitter-nim 解析器
将 GTK builder ui 文件识别为 XML
为 markdown-oxide 语言服务器添加配置
为 elvish 添加 shebang
修复 Svelte TypeScript 注入的优先级问题
识别常见的 Dockerfile 文件类型
将 NUON 文件识别为 Nu
为 Java 本机函数和构造函数添加文本对象
修复 JSX 高亮中的 "braket" 拼写错误
更新 tree-sitter-hurl
为 Vala 添加文本对象查询
更新 tree-sitter-git-config
将 'mmd' 识别为 Mermaid
高亮 Rust 的 extern crate 别名
改进 C++ 中的参数高亮
将 'rclone.conf' 识别为 INI
在 Ruby 的 heredocs 中为 GraphQL 和 ERB 添加注入
将 main.odin 添加到 Odin LSP 根目录中
打包
允许在 Nix 语法构建中使用用户覆盖层
将 Cargo 功能解析器设置为 v2
使用工作区继承来获取公共 Cargo 元数据
从默认构建中移除基于 sourcehut 的 tree-sitter 语法
为 Windows 可执行文件添加图标