甚至用不了五分钟就能学会vscode插件开发

简介: 本文介绍了VSCode插件的开发流程,从创建项目到最终发布。首先通过安装`yo`和`generator-code`脚手架工具初始化项目,选择JavaScript语言配置基础信息。接着,在`extension.js`中实现业务逻辑,例如将中文“变量”替换为“var”。通过F5进入调试模式验证功能。完成后使用`vsce`工具进行打包,解决可能遇到的版本不兼容或README文档问题。最后生成`.vsix`文件,可通过VSCode的“从VSIX安装”加载插件,实现开发闭环。进一步可将插件发布至官方市场供更多开发者使用。

插件(plugin)是vscode生态的扩展能力,插件可以让基于vscode开发的过程丰富多彩。比如层级括号颜色区分,甚至是各种ai智能补全工具,成为程序员在使用vscode进行开发时不可缺少的插件工具,大大提升了程序员的开发体验。

前言

       vscode的市场占有率越来越高,产品的轻量化是一大原因,更重要的是vscode拥有可高度定制化的插件生态。如果掌握了vscode插件开发能力,对团队提效和提升个人影响力都是一个较好的技术储备。本文通过简单的功能流程,旨在5分钟或更快跑通vscode开发流程。

Pasted Graphic 29.png

       示例,写中文的“变量”,开发一个vscode的插件进行更替,最终全量替换成“var”。

变量 a = 1; // 自己书写的代码
var a = 1; // 插件替换的代码


创建项目

       在创建项目之前,我们需要创建一个项目目录(路径随意),可以使用mkdir指令创建文件夹,再基于该文件夹目录打开vscode。

vscode-plugin --zsh- 80x24.png

       vscode插件开发需要安装两个全局依赖,分别是yogenerator-code。这里使用了npm,执行命令npm install -g yo generator-code。

  • yo:一个通用型项目的脚手架工具。
  • generator-code:vscode的扩展生成器,需要配合yo使用。
npm install -g yo generator-code

Pasted Graphic 10.png

⚠️注意,node版本需要>=18,否则会出现类似以下的情况。

k-Provscode-plugin payuhnos non.png

       安装完成后,执行命令yo generator-code,创建vscode的插件开发项目。

yo generator-code

image.gif

mayuhaodeMacBook-Proyscode-pluqin mayuhaos yo qenerator-code.png

       这里我们选择JavaScript语言进行开发,各种配置如extension的name、identifier、desciption等可以先随意配置,后边也可以在package.json中修改。

He lcone to the Visual.png

       到此,我们的vscode插件开发项目就创建完成了!

指令配置

       用vscode进入这个项目的文件目录,可以看到如下资源结构。extension.js文件很重要,里边是我们插件实现的业务逻辑。

PLUGINE.png

       进入package.json文件,可以看到contributes中的commands是一个数组,里边可以包含多个指令,title就是指令名称,原本是“Hello World”,我这里先换成to plugin,方便后续调试清晰看到(也可以不改)。

activationEventsm O..png image.gif

本地调试

       在vscode插件项目中敲击F5,进入本地调试模式,会出现下图中的调试台,并且自动会开启一个调试窗口,可以随意打开一个项目进行调试。

() psckng Jwen () centrbutes Jcemmands  ()o) C tn.png

       在调试窗口中,随意找一个编辑位置,写上如下代码:

变量 a = 1;
变量 b = 2;

image.gif

       敲击键盘ctrl+shift+p打开指令栏,输入to plugin。(如果package.json的title没有修改就是Hello World) ,然后敲击回车。

Pasted Graphic 18.png image.gif

       右下方会出现提示语,表示我们的vscode插件可以正常调试。

Pasted Graphic 19.png

       我们回到插件工程,打开extension.js文件,可以看到有下图红圈中的语句,说明这里激活插件后,匹配了注册的plugin.helloWord命令,执行命令的回调函数会执行代码。

ine of cede vilt cnlyt CAwIeL 3e Men raur eateesiee 1s activeted.png

核心编码

       那么我们可以直接在activate方法中新增其他指令,这里我直接在这个命令的回调域书写代码逻辑。

       我们最终的目标是替换文本,设计的流程图如下,总共需要三个步骤。

Pasted Graphic 25.png

       这里就可以进行编码,其中vscode的工具对象中有很多子对象,window就是其中之一,window中的activeTextEditor是专用于获取编辑器选中文本的变量。更多用法可以查阅官方api文档,做vscode开发更多是成为一名api调用工程师。【官方api文档】

const disposable = vscode.commands.registerCommand('plugin.helloWorld', function () {
    // 调用vscode中的工具对象
    const editor = vscode.window.activeTextEditor;
    if (!editor) {
        vscode.window.showErrorMessage('未识别到文本框');
        return;
    }
    if (editor.selection.isEmpty) {
        vscode.window.showErrorMessage('请选择要识别的代码');
        return;
    }
    // 获取编辑区选中的代码片段
    const text = editor.document.getText(editor.selection);
    const varReg = /变量/g;
    // 代码片段回插到编辑区中
    const rebackString = JSON.stringify(text.replace(varReg, 'var'));
    // 调用edit的写入api将代码片段回插到编辑区中
    editor.edit(build => {
        build.replace(editor.selection, JSON.parse(rebackString));
    });
    vscode.window.showInformationMessage('Hello World from myPlugin!');
});

image.gif

       进行保存后,我们点击一下刷新的按钮对编写的插件重新编译。

backage Json () contrbutes 〉 eommands  ()oy D wte.png

       再回到调试窗口,尝试一下刚才的指令,到此,我们实现了变量关键词替换的这个功能。

image.gif

打包发布

       完成了插件业务逻辑的书写,最终一定是要投入使用,否则插件的开发将毫无意义。首先需要安装vsce,vsce是vscode extension的缩写,可用于插件的打包和发布,在命令行执行npm install -g vsce。

npm install -g vsce

image.gif

       完成安装后,需要执行执行vsce package命令进行打包。

vsce package

image.gif

⚠️注意,此处可能会有以下两个坑。

坑1-版本不对称:

Pasted Graphic 24.png

image.gif 因为@types/vscode和engines.vscode版本不兼容,而且在vscode应用版本之上,导致无法兼容。

Visual Studio Code.png

解决方案:

太高与当前vscode版本不辣客,可以牌版本处理。.png

       将engines.vscode和@types/vscode的值都改为"^1.32.0",删除node_modules,使用npm install重新安装依赖。

坑2-README.md文档报错: image.gif

EOpR sure to odit the ReAoHE. ed fAle before you packaoe or pobLISh your extens 1on..png

解决方案:

将After writing up...之前的This is the README for your extension "plugin".删除,再打包即可。

Ue REAne Tac your extes nplug e. T.png

解决报错,打包成功之后,可以看到目录中出现了一个vsix格式的产物,这就是打包后的vscode插件。

image.gif Js extension.js.png

进入到vscode中,点击插件->更多->从VSIX安装,选中刚才生成的vsix产物,就成功加载插件,可以在正常开发中使用。

Supercharpe Ch within Vs Code - Visuall 嘉用所有广.png

       到此,已经完成了vscode插件从创建->开发->发布的闭环,再进一步可以发布到插件市场,供其他开发者在线下载。(团队内部正常使用,非开源情况下其实并不需要)【插件市场】

temp1.png image.gif

相关文章
|
1月前
|
人工智能 开发工具 C++
利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例
本文介绍了如何利用阿里云通义灵码AI程序员的Qwen2.5-Max模型,在VS Code中一键生成扫雷小游戏。通过安装通义灵码插件并配置模型,输入指令即可自动生成包含游戏逻辑与UI设计的Python代码。生成的游戏支持难度选择,运行稳定无Bug。实践表明,AI工具显著提升开发效率,但人机协作仍是未来趋势。建议开发者积极拥抱新技术,同时不断提升自身技能以适应行业发展需求。
22206 18
|
5月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1015 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
|
2月前
|
人工智能 自然语言处理 前端开发
通义灵码插件在VSCode中的运用
借助通义灵码插件在VSCode构建新闻网,实现效率与智能的融合。VSCode作为前端开发的“瑞士军刀”,提供实时预览、智能辅助和高效管理功能;通义灵码插件通过自然语言交互生成代码,简化复杂任务并优化代码质量。两者结合形成从设计到部署的高效闭环,大幅减少基础编码时间,降低开发门槛,助力开发者聚焦业务逻辑与创新。
|
2月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
367 8
|
3月前
|
JavaScript 前端开发 jenkins
抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
本文探讨了在不依赖Node和VSCode的情况下,仅使用记事本和浏览器开发一个完整的Vue3前端项目的方法。通过CDN引入Vue、Vue Router、Element-UI等库,直接编写HTML文件实现页面功能,展示了前端开发的本质是生成HTML。虽然日常开发离不开现代工具,但掌握这种基础方法有助于快速实现想法或应对特殊环境限制。文章还介绍了如何用Node简单部署HTML文件到服务器,提供了一种高效、轻量的开发思路。
|
5月前
|
开发工具 C++ git
利用VS Code提升开发效率的五大插件推荐
本文推荐了五款能显著提升开发效率的VS Code插件:ESLint用于代码质量和风格检查;Prettier自动格式化代码;GitLens增强Git功能;Live Server提供前端实时预览;Docker支持容器管理。
|
6月前
|
自然语言处理 JavaScript 开发者
通义灵码插件:VSCode 的智能编程助手
通义灵码插件:VSCode 的智能编程助手
2811 3
|
6月前
|
前端开发 JavaScript 编译器
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
【10月更文挑战第11天】2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
1629 0
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
|
8月前
|
iOS开发 MacOS
【Mac系统】解决Vscode中LeetCode插件不能刷剑指offer题库
文章讨论了解决Mac系统中Vscode里LeetCode插件无法刷剑指Offer题库的问题,并提供了一些相关的使用技巧和资源链接。
466 1

热门文章

最新文章

下一篇
oss创建bucket