资讯动态

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

发布时间:2026/9/13 18:00:34 来源:尧图企业网站定制
从零到发布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/zedZed 扩展也常被叫作 Zed 插件是 Zed 编辑器用来增加语言支持、主题、命令等能力的可安装组件。本文带你走完一条完整路线先把扩展装进编辑器再亲手写出你的第一个扩展最后了解如何把它发布到官方商店。第一步三种方式安装 Zed 扩展总有一款适合你先说结论日常使用走商店开发调试走开发扩展离线场景用.zedext文件手动装。扩展商店最常用在 Zed 中打开命令面板macOS 按CmdShiftP其他平台按CtrlShiftP输入Zed: Extensions打开扩展页面搜索你要的扩展名点安装即可。装完的扩展文件存放在用户目录下例如 Linux 上是~/.local/share/zed/extensions源码在installed子目录扩展运行时下载的依赖在work子目录。开发中扩展如果你正在写扩展或想试用别人还没发布的版本执行命令zed: Install Dev Extension然后选中扩展所在目录。安装成功后扩展页会显示Overridden by dev extension说明当前生效的是你本地的开发版本。手动安装.zedext文件如果手里已经下载好了扩展包.zedext格式执行zed: Install Extension from File选中该文件即可完成安装全程不需要联网。三种方式的具体行为可以在仓库自带的安装文档里查到更多细节。第二步从零写一个 Zed 扩展3 个文件就够了 ️先说结论一个最小扩展只需要extension.toml、Cargo.toml、src/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 extension2. 写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.0zed_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改代码、重装、看效果循环迭代。第三步扩展装好了没反应用日志定位问题先说结论扩展出问题十有八九在日志里一条命令就能看到。在终端执行下面的命令让 Zed 在当前终端前台运行zed --foreground在 Zed 里触发扩展相关的操作比如打开一个需要该扩展的文件。回终端看输出扩展的println!/dbg!日志会直接打印在这里出错时的报错信息也在这里。另外两个高频排查点一是确认扩展目录里选对了吗——开发扩展指向的目录必须直接包含extension.toml二是扩展版本过旧升级zed_extension_api依赖后重新安装通常能解决兼容性问题。扩展能做什么语言、主题、命令三大件这一节帮你建立扩展能力版图写之前心里有数语言扩展给 Zed 加一门新语言。语法高亮靠 Tree-sitter一种能实时增量解析代码的库扩展只需在extension.toml里声明一份语法即可智能提示靠 LSPLanguage Server Protocol语言服务器协议负责代码补全、跳转定义这类功能扩展负责找到并启动语言服务器进程。主题扩展一个 JSON 文件定义颜色和字体主题开发文档 有完整写法。其他类型代码片段、调试器、图标主题等都有对应规范要求扩展的id带上前缀或后缀表明类型比如主题扩展的 id 以-theme结尾规范都写在发布前置要求里。第四步如何发布你的 Zed 扩展到官方商店先说结论发布 满足前置要求 向官方扩展仓库提一个 Pull Request审核通过即上架。提交前的硬性要求扩展功能必须是商店里还没有的已有的先考虑给现有扩展提贡献扩展 id 用小写短横线分隔且不能包含zed、extension字样使用商店认可的开源许可证Apache 2.0、BSD 3-Clause、GPLv3、MIT 等版本号遵循 SemVer语义化版本即主版本.次版本.补丁三段式语言服务器、调试器这类二进制不要塞进扩展包里让扩展在运行时按用户环境去下载或查找。发布流程大致是把你的扩展代码放进一个公开的独立仓库Fork 官方扩展仓库即 Zed 官方的 extensions 注册仓库并克隆到本地初始化子模块把你的扩展仓库以 Git 子模块方式挂到extensions/{扩展id}路径下在顶层extensions.toml中登记你的扩展version必须与extension.toml里的一致提 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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价