VS code 插件开发——开发第一个 vscode 插件

在这里插入图片描述

VS code 插件开发

​ Visual Studio Code(VSCode)是一款功能强大、灵活可扩展的代码编辑器,深受开发者喜爱,广泛应用于软件开发和编程领域。

​ VSCode 插件对于 VSCode 的意义非常重大,它们是 VSCode 如此受欢迎和广泛使用的关键之一。围绕VSCode,VSCode 插件提供了以下几个大方面的能力:

  1. 功能扩展: 插件允许用户根据自己的需求和偏好扩展编辑器的功能。这意味着开发者可以根据自己的编程语言、框架和工具需求,选择安装相应的插件来增强编辑器的功能,使其更加适合特定的开发任务。

  2. 多语言支持: 通过安装相应语言的插件,VSCode可以支持广泛的编程语言,包括但不限于JavaScript、Python、Java、C++等,使得开发者可以在同一个编辑器中处理多种语言的代码,提高了开发效率。

  3. 生态系统: VSCode的插件生态系统非常丰富,拥有大量由社区开发和维护的插件,涵盖了几乎所有开发场景和需求。无论是代码格式化、静态代码分析、调试支持还是项目管理工具,都可以在插件市场中找到相应的解决方案。

  4. 个性化定制: 插件使得VSCode变得更加个性化和灵活。用户可以根据自己的工作流程和偏好选择安装不同的插件,并进行相应的配置,使得编辑器更符合个人的工作习惯和需求。

本文将主要从功能扩展方面进行对vscode插件的讲解。

官方文档:Extension API | Visual Studio Code Extension API

中文文档(非官方):VS Code 插件开发中文文档 (rackar.github.io)

前期准备

主要是脚手架和基本 Node 环境。值得一提的是,经过本人实际开发检验,不同的 Node 版本启动同一个插件项目会有不同程度的影响。有的不报错但是逻辑运行诡异难测、有的报错但是能运行(踩坑过来的)。

这里推荐大家使用更为新的nodejs版本。下面的项目中我会采用 nodejs 21 的版本进行运行。

安装 Nodejs 环境

以下可以任选一种方式安装

1、nodejs官方:Node.js — Run JavaScript Everywhere (nodejs.org)

​ nodejs 官方已经使用了 React.js 重构了官网,打开官网后就有一个大大的 ”Download“ ,点击下载即可,默认是最新的长期支持版。

2、NVM 安装

nvm install node
# or
nvm install 21 # 直接输入版本号

创建你的第一个 VScode 插件

主要是 yeoman + generate-code 相结合

以下可任选一种方式使用脚手架工具:

1、不想安装脚手架工具到本地,直接创建项目:

	npx --package yo --package generator-code -- yo code

2、安装脚手架工具到本地并使用

# 工具安装
npm install --global yo generator-code

# 创建插件项目
yo code

注意:这里的code 不是项目名称,不需要担心。在使用前不需要提前创建目录,使用脚手架的时候会询问项目名称并进行创建。

创建的过程中大概需要回答这样的几个问题;

# ? What type of extension do you want to create? New Extension (TypeScript)
# ? What's the name of your extension? HelloWorld
### Press <Enter> to choose default for all options below ###

# ? What's the identifier of your extension? helloworld
# ? What's the description of your extension? LEAVE BLANK
# ? Initialize a git repository? Yes
# ? Bundle the source code with webpack? No
# ? Which package manager to use? npm

# ? Do you want to open the new folder with Visual Studio Code? Open with `code`

启动项目

打开 src/extension.ts 文件,并按下 F5即可运行项目。

这里默认采用的就是Debug模式进行运行。

我们也可以通过 vscode Debug窗口中的按钮点击运行位置如下:

在这里插入图片描述

Debug 方法

在上图中已经介绍了大家常用的 console.log() 要怎么看。接下来还有两种调试的方式可供使用。(目前是摸索了这么多,如有补充欢迎交流)。

断点调试

​ 上文也说了,我们开发中使用了 debug 模式运行项目,那么我们就可以使用打断点的方式进行调试。

在这里插入图片描述

开发人员调试窗口

可以使用 Ctrl/cmd+Shift+P 打开一个命令调用窗口,并输入 Developer: Toggle Developer Tools,回车后即可打开一个和浏览器开发者调试工具一样的窗口。

vscode 是基于electron框架开发的,所以必然也是拥有开发者调试工具的。这个相信开发过electron的小伙伴都懂。

在这里插入图片描述

在这里插入图片描述

插件打包 - VSCE

安装

npm install -g @vscode/vsce

npm install -g vsce

也可以不安装:

npx vsce [命令参数]

打包和发布

1、打包成 VSIX。

在项目根目录下执行

vsce package

这里需要注意,vsce打包时如果项目的依赖是采用了pnpm 进行下载的,vsce会打包失败的,需要删除node_modules 然后使用npm 重新下载,再执行 vsce package

完成后即可在项目目录中看到一个vsix后缀的文件了,可以通过vsix方式导入到vscode中

2、发布

发布前请检查 package.json 中是否已经配置好了publisher。在发布时会提醒你做账号、Id等配置。按提示完成即可。

vsce publish
### VSCode 插件开发:文件菜单集成 在VSCode中创建与文件菜单交互的插件涉及几个关键部分,包括注册命令、配置`package.json`以及编写实际处理逻辑。通过官方提供的工具和资源可以简化这一过程[^2]。 #### 使用Yo Generator初始化项目 为了快速搭建一个新的VSCode扩展项目,推荐使用由微软提供的Yeoman生成器——`generator-code`。这允许开发者轻松设置好基础结构并集中精力于功能实现上: ```bash npm install -g yo generator-code yo code ``` 完成上述步骤之后,在向导提示下选择适合选项即可建立初始框架。 #### 修改 `package.json` 添加贡献点 为了让新加入的功能出现在编辑器顶部导航栏中的“文件”子项里,需更新项目的`package.json`文件,添加如下所示的相关条目: ```json { "contributes": { "menus": { "file": [ { "command": "extension.myCustomFileCommand", "when": "true" } ] }, ... } } ``` 这里指定了当满足条件表达式(此处总是为真)时,“我的自定义文件命令”的入口会被附加到目标位置[^1]。 #### 实现命令处理器函数 接下来就是具体业务逻辑的部分了。通常是在`src/extension.ts`内定义响应动作的方法体,并确保其名称同之前声明的一致: ```typescript import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { let disposable = vscode.commands.registerCommand('extension.myCustomFileCommand', () => { // Your implementation here... vscode.window.showInformationMessage("This is a message triggered by the custom file menu item!"); }); context.subscriptions.push(disposable); } // this method is called when your extension is deactivated export function deactivate() {} ``` 以上代码片段展示了怎样关联一个简单的弹窗消息给指定的操作名;当然也可以替换为自己想要执行的任务列表。 #### 测试效果 最后一步便是验证成果啦!利用F5键启动内置调试模式下的第二个实例来进行即时预览。如果一切顺利的话,应该能在预期的地方看到新增加的内容哦!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值