从零到发布:5 分钟玩转 Zed 扩展系统的完整教程
2026/9/13 18:00:29 网站建设 项目流程

从零到发布:5 分钟玩转 Zed 扩展系统的完整教程

【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zed

Zed 扩展(也常被叫作 Zed 插件)是 Zed 编辑器用来增加语言支持、主题、命令等能力的可安装组件。本文带你走完一条完整路线:先把扩展装进编辑器,再亲手写出你的第一个扩展,最后了解如何把它发布到官方商店。

第一步:三种方式安装 Zed 扩展,总有一款适合你

先说结论:日常使用走商店,开发调试走"开发扩展",离线场景用.zedext文件手动装。

  1. 扩展商店(最常用):在 Zed 中打开命令面板(macOS 按Cmd+Shift+P,其他平台按Ctrl+Shift+P),输入Zed: Extensions打开扩展页面,搜索你要的扩展名,点"安装"即可。装完的扩展文件存放在用户目录下(例如 Linux 上是~/.local/share/zed/extensions),源码在installed子目录,扩展运行时下载的依赖在work子目录。
  2. 开发中扩展:如果你正在写扩展,或想试用别人还没发布的版本,执行命令zed: Install Dev Extension,然后选中扩展所在目录。安装成功后扩展页会显示"Overridden by dev extension",说明当前生效的是你本地的开发版本。
  3. 手动安装.zedext文件:如果手里已经下载好了扩展包(.zedext格式),执行zed: Install Extension from File,选中该文件即可完成安装,全程不需要联网。

三种方式的具体行为,可以在仓库自带的安装文档里查到更多细节。

第二步:从零写一个 Zed 扩展,3 个文件就够了 🛠️

先说结论:一个最小扩展只需要extension.tomlCargo.tomlsrc/lib.rs三个文件。前提是装好 Rust 工具链(用 rustup 安装最省事)和 Git。

仓库里的 extensions/ 目录就是官方维护的扩展示例(HTML、GLSL、Proto 等语言扩展都在这),照着它们抄是最快的学习方式。

1. 写扩展元数据extension.toml,声明扩展的身份信息:

id = "my-first-extension" name = "My First Extension" version = "0.1.0" schema_version = 1 description = "My first Zed extension"

2. 写Cargo.toml,注意crate-type必须是cdylib,因为扩展最终会被编译成 Zed 加载的动态库:

[package] name = "my-first-extension" version = "0.1.0" edition = "2021" [lib] crate-type = ["cdylib"] [dependencies] zed_extension_api = "0.1.0"

zed_extension_api就是所有 Zed 扩展共用的接口库,源码在仓库的 crates/extension_api 里,官方示例用的也是它,接口完全一致。

3. 写src/lib.rs入口,实现Extension接口并注册:

use zed_extension_api as zed; struct MyExtension; impl zed::Extension for MyExtension { fn new() -> Self { Self } } zed::register_extension!(MyExtension);

写完用前面提到的zed: Install Dev Extension装进 Zed,改代码、重装、看效果,循环迭代。

第三步:扩展装好了没反应?用日志定位问题

先说结论:扩展出问题十有八九在日志里,一条命令就能看到。

  1. 在终端执行下面的命令,让 Zed 在当前终端前台运行:
zed --foreground
  1. 在 Zed 里触发扩展相关的操作(比如打开一个需要该扩展的文件)。
  2. 回终端看输出,扩展的println!/dbg!日志会直接打印在这里,出错时的报错信息也在这里。

另外两个高频排查点:一是确认扩展目录里选对了吗——开发扩展指向的目录必须直接包含extension.toml;二是扩展版本过旧,升级zed_extension_api依赖后重新安装通常能解决兼容性问题。

扩展能做什么:语言、主题、命令三大件

这一节帮你建立"扩展能力版图",写之前心里有数:

  • 语言扩展:给 Zed 加一门新语言。语法高亮靠 Tree-sitter(一种能实时增量解析代码的库,扩展只需在extension.toml里声明一份语法即可);智能提示靠 LSP(Language Server Protocol,语言服务器协议,负责代码补全、跳转定义这类功能,扩展负责找到并启动语言服务器进程)。
  • 主题扩展:一个 JSON 文件定义颜色和字体,主题开发文档 有完整写法。
  • 其他类型:代码片段、调试器、图标主题等都有对应规范,要求扩展的id带上前缀或后缀表明类型(比如主题扩展的 id 以-theme结尾),规范都写在发布前置要求里。

第四步:如何发布你的 Zed 扩展到官方商店

先说结论:发布 = 满足前置要求 + 向官方扩展仓库提一个 Pull Request,审核通过即上架。

提交前的硬性要求:

  1. 扩展功能必须是商店里还没有的(已有的先考虑给现有扩展提贡献);
  2. 扩展 id 用小写短横线分隔,且不能包含zedextension字样;
  3. 使用商店认可的开源许可证(Apache 2.0、BSD 3-Clause、GPLv3、MIT 等);
  4. 版本号遵循 SemVer(语义化版本,即"主版本.次版本.补丁"三段式);
  5. 语言服务器、调试器这类二进制不要塞进扩展包里,让扩展在运行时按用户环境去下载或查找。

发布流程大致是:

  1. 把你的扩展代码放进一个公开的独立仓库;
  2. Fork 官方扩展仓库(即 Zed 官方的 extensions 注册仓库)并克隆到本地,初始化子模块;
  3. 把你的扩展仓库以 Git 子模块方式挂到extensions/{扩展id}路径下;
  4. 在顶层extensions.toml中登记你的扩展,version必须与extension.toml里的一致;
  5. 提 PR,等待维护者审核。注意规则:一个 PR 只能提交一个扩展,同时最多开 3 个 PR,审核意见 3 周内要回复,否则会被关闭。

完整步骤见仓库内的发布指南。

下一步

  • zed: Install Dev Extension把 extensions/ 里的官方示例装进 Zed,通读它的代码
  • 照本文三个文件搭一个最小扩展,跑通zed --foreground日志
  • 对照扩展开发文档 补全语言高亮或主题,然后准备发布

【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zed

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询