Acode 的插件生态让它从编辑器变成平台。插件本质是 JavaScript 模块,通过官方 API 与编辑器交互。本文带你从零写一个能用的插件。

插件由什么构成

最小插件包含两个文件:plugin.json 描述元信息,index.js 是主逻辑,目录放在 Acode 插件目录下,也可打包成 zip。

编写插件清单

在 Acode 中新建目录 my-plugin,创建 plugin.json:

plugin.json
{
  "id": "com.example.hello",
  "name": "Hello Acode",
  "version": "1.0.0",
  "description": "插入问候语",
  "main": "index.js"
}

id 是唯一标识,建议用反向域名风格避免冲突。

编写插件逻辑

在 index.js 中注册一个命令,点击后向当前编辑器插入文本:

index.js
module.exports = {
  commands: {
    "hello": () => {
      editorManager.editor.insert("你好,Acode!
");
    }
  }
};

editorManager 是全局对象,可访问编辑器、文件系统、终端等 API。

本地加载与调试

开发时无需发布,Acode 支持直接加载本地插件:设置中从本地安装,指向项目目录即可。重启后在命令面板搜索 Hello 运行命令,光标处就会出现问候语。

打包发布到商店

完成后把目录压缩为 zip,在插件商店网页版或应用内提交元信息并上传,审核通过后所有用户都能安装。每次更新记得同步修改 version 字段。

更多编辑器 API

除了插入文本,插件还能操作文件系统、终端与设置,可实现自定义格式化、批量替换、代码统计等工具。

让插件更实用

可在 plugin.json 注册多个命令、定义设置项,发布后关注反馈及时修复。

总结

掌握 plugin.json 与 index.js 就入门了,多读源码、多写命令、多试 API。

本节要点:插件 = plugin.json 元信息 + index.js 逻辑;本地加载调试零成本;通过 editorManager API 即可操作编辑器。