Zed正式补齐LSP短板

不知道大家平时用Zed写代码的时候有没有遇到过一种憋屈的情况。有些语言服务器本身自带一些增强交互能力,比如点击一处提示之后,让编辑器自动打开另一个文档,或者直接执行一条命令完成修复。

放在VS Code上,这一套早就跑顺了。但是换到Zed,以前就不好使。明明语言服务器发出来请求了,编辑器这边直接无视掉,什么反应都没有。白白损失了LSP提供的很多的强大的能力。

很多时候你看着代码提示上明明有个跳转按钮,点下去之后石沉大海,一点动静都没有。

新版本zed这次补上了两块关键LSP能力:支持LSP命令执行(command execution)还有showDocument请求。

简单说是什么意思?以前单向的通道现在打通了。

过去只是Zed向语言服务器发请求,问符号、查补全;语言服务器只能老老实实返回数据,没有办法反过来指挥编辑器。现在不一样,语言服务端可以主动下达指令:帮我打开某一份文件,帮我运行一个修复命令。

举个很实际的开发场景。Go的语言服务器,在执行导入修复、快速修正之后,需要自动跳转到生成的新文件。放在老版本Zed里面,修复动作做完了,但是页面不会自动切过去,你只能自己手动去找刚刚生成出来的文件。有了showDocument之后,编辑器就可以直接打开对应的文档,一步到位。

另外就是LSP命令执行。不少语言的CodeAction(代码快速修复)背后,本身绑定了一条服务端自定义命令。之前Zed只能识别简单文本修改,碰到需要执行后台命令的修复,直接直接失效,修复按钮点了等于白点。

下面看看再zed里面怎么来操作

首先 使用命令面板,搜索lsp command

enter之后,瞬间会弹出所有的lsp的命令

比如常用的add import 添加导入,add_dependency 添加依赖,apply fix修复语法报错

对于md文件也有这样类似的操作

这对于第三方语言服务器的适配来说意义很大。之前不少开发者吐槽Zed对各类LSP的兼容性差,并不是语言服务器写的有问题,而是编辑器本身没有实现规范里面这部分接口。很多小众语言、企业内部自研的语言服务,想要在Zed上面跑完整交互就会卡壳。补齐接口之后,不用再专门给Zed做特殊适配,遵循标准LSP协议就可以直接工作。

除了这个意外,zed还带来了一个我们以前很常用的lsp的能力,就是内联提示的命令能力

鼠标点击这一行灰色内嵌提示,就可以直接执行 LSP 绑定的命令(跳转定义、执行修复动作)

当然也不是说一下子就追上VS Code全部的生态。只是Zed正在一点点补齐LSP协议里面那些曾经缺失的部分。Rust写的编辑器性能固然很香,但兼容性才是留住普通开发者的根本。很多时候大家换编辑器,最怕的就是自己顺手的语言工具直接废掉。

现在补齐之后,第三方语言服务器终于不再是单纯被动回答查询,也拥有反向控制编辑器的权力了。不知道后续大家手上的语言服务,会不会在Zed上面出现更多好用的交互?

相关推荐
golang学习记18 天前
Zed 新特性:这次继续抄VSCode
vscode·编辑器·zed
猿小猴子2 个月前
主流 Agent 之 「Zed」和 「ZCode」 介绍
ide·ai·agent·zed·zhipu·ade·zcode
Mr -老鬼3 个月前
Zed WASM扩展开发全套踩坑记录(WASI适配、LSP插件开发避坑指南)
rust·wasm·lsp·zed·ai ide·语言服务器
golang学习记4 个月前
Zed 新功能worktree详细介绍
zed
cnbestec5 个月前
Stereolabs ZED 双目相机:人形机器人具身智能的高保真视觉底座
zed·stereolabs·zed双目相机
怪我冷i6 个月前
解决win11运行cargo run的报错,Blocking waiting for file lock on build directory
rust·web·zed·salvo
落798.6 个月前
将 Zed 集成到 Bright Data Web MCP,让 AI 编辑器具备“超能力”
zed·亮数据
阿Q说代码7 个月前
将Zed集成到Bright Data 的Web MCP
数据获取·zed·亮数据
前进吧-程序员8 个月前
Ollama 本地部署编程大模型 + Zed 编辑器配置指南
ai编程·zed·ollama