本教程内容整理自 张子彤 - VSCcode RISC-V 插件制作(1)-20250910 的演讲视频,属于 PLCT 实验室内部报告,仅供技术交流使用。演讲围绕 VSCode 插件开发流程展开,以 RuyiSDK 包管理器为例,讲解了插件的创建、配置、功能设计等关键步骤。本文在原视频基础上进行了结构化整理,适合开发者快速入门 VSCode 插件开发,并参考如意工具链的集成实践。
如有疏漏或错误之处,欢迎批评指正,共同完善。如需转载或引用本文内容,请注明出处,尊重原作者的劳动成果。
第一步:VSCode 扩展开发基础
-
准备开发环境:
- 为了开发一个 VSCode 插件,我们推荐使用 Yeoman 和 VSCode Extension Generator 快速生成 TypeScript 项目骨架。你可以选择临时使用或全局安装这两个工具:
快速启动方式(无需全局安装)
npx --package yo --package generator-code -- yo code
这条命令会临时下载所需工具并启动项目生成器,适合一次性使用或轻量开发。
全局安装方式(推荐)
npm install --global yo generator-code yo code
适合频繁开发插件的用户,安装后可随时运行
yo code
创建新项目。 -
项目结构说明:
生成的插件项目通常包含以下文件:
launch.json
:调试和启动扩展的配置tasks.json
:编译 TypeScript 的任务配置.gitignore
:忽略编译产物和node_modules
等不需提交的文件README.md
:扩展功能的可读说明src/extension.ts
:扩展源码package.json
:扩展清单tsconfig.json
:TypeScript 配置
3.插件调试流程
- 在 VSCode 中打开项目文件夹
- 打开
src/extension.ts
- 按下
F5
或运行命令面板中的Debug: Start Debugging
(快捷键Ctrl+Shift+P
) - VSCode 会启动一个新的「扩展开发宿主窗口」
- 在新窗口中打开命令面板,运行你注册的插件命令进行测试
第二步:选择开源许可证
在开发 VSCode 插件时,选择合适的开源许可证至关重要。常见的三种许可证包括:
- Apache 2.0:一种宽松型许可证,允许自由使用、修改和分发,同时提供专利授权保护。适合希望支持商业化、闭源分发且规避专利风险的项目。
- MIT 许可证:极为简洁宽松,允许几乎任何用途,包括商用和闭源,仅要求保留原始版权声明。适合初创团队和快速迭代的项目,但不包含专利授权条款。
- GPL 许可证:强制开源许可证,要求所有衍生作品也必须开源发布,不能与闭源代码混合使用。适合强调社区共享和代码自由的项目。
本项目最终选择 Apache 2.0 作为开源许可证,兼顾灵活性与法律保障,适合插件生态的长期发展。
第三步:功能设计
本教程以 “RuyiSDK 包管理器” 的插件为例,设计了以下功能,你可以根据自己的需求进行调整:
-
SDK 检测与安装:
- 在插件启动时,自动检测系统是否已安装RuyiSDK
- 通过弹窗提示用户检测结果,并提供“一键安装”按钮,让用户无需手动下载
-
包管理:
- 在 VSCode 中创建一个类似于插件商店的 UI 界面
- 用户可以在界面中搜索、安装和卸载软件包,提供一站式体验
-
新闻订阅:
- 使用 VSCode 的
WebviewView
组件展示最新的 RISC-V 相关新闻 - 利用 Markdown 渲染,美化新闻的正文内容
- 使用 VSCode 的
-
虚拟环境管理:
- 提供一个快速选择(QuickPick)组件,列出所有虚拟环境。
- 用户可以方便地创建、切换或关闭虚拟环境,而无需在终端中手动输入命令
示例效果图:
第四步:项目编译与 Package.json 配置
-
编译和检查:
-
安装 TypeScript 编译器
如果尚未安装 TypeScript 编译器,请使用以下命令:
npm install -g typescript
这将安装全局的
tsc
命令,用于编译.ts
文件。
编译方式一:单文件编译
适合快速测试或小型脚本:
tsc filename.ts
编译方式二:监听模式(推荐开发时使用)
使用
--watch
参数启动监听模式,自动重新编译修改过的文件:tsc filename.ts --watch
每次保存文件时,编译器会自动重新生成 JavaScript,无需手动运行命令。
编译方式三:使用配置文件编译(推荐项目开发)
通过配置文件
tsconfig.json
管理整个项目的编译行为:tsc --init #初始化配置文件
生成后可在其中设置编译选项,避免在命令行中重复输入参数。
使用配置文件编译:
tsc --project tsconfig.json
编译器会根据配置文件自动识别要编译的文件、输出目录、模块系统等。
-
-
配置插件清单文件(package.json):
package.json
是 VSCode 插件的核心清单文件,决定插件的基本信息、激活方式、功能入口和依赖环境。主要包含以下几个关键字段:
-
name
:插件唯一标识,必须全小写、无空格 -
displayName
:插件在 VSCode 商店中展示的名称 -
description
:简要说明插件功能 -
version
:插件版本号,遵循语义化(如0.1.0
) -
license
:开源许可证 -
publisher
:发布者标识符 -
engine
:指定支持的 VSCode 版本(如"vscode": "1.88.0"
)更多配置文件说明详见原视频
示例配置片段: