技术

·

3 min read

·

- Views

🆚开发一个VSCode插件

Copied

🆚开发一个VSCode插件

功能

用于在I18n项目中快速定位到DOM的插件

源码地址

需求

最近在开发一个国际化项目,是从一个vue2项目迁移过来的, 前同事估计是用的什么插件一键生成的翻译,翻译的命名都是很随意的,

这造成我在开发时想在编辑器中快速定位到某个位置上时,有些困难。因为一般中文的网页,直接在VSCode中搜索页面上的中文是最快的定位方式,但是由于使用i18n,代码中dom部分的字符并不能直接搜索到。于是在想有没有什么插件能够直接搜索英文 然后编辑器能自动定位到文件的使用该英文的部分,感觉这个功能开发起来也不难,于是正好本着学习VSCode插件开发的想法,就不调研了, 直接开写~

项目初始化

没啥好说的 网上教程一大堆 基本都是用yo脚手架来进行初始化npm install -g yo generator-code然后根据需求来选择不同的配置即可一键生成项目框架

开发直接使用VSCode自带的运行和调试即可,选择 Run Extension

实现

核心逻辑是 输入页面中的英文 ⇒ 到JSON文件中进行查找对应的Key

得到 res = JSON文件名}.{Key} ⇒ 在代码中查找哪里使用了res 这段文字,查找到就将VSCode光标跳转过去

对于VSCode的API,当然是直接问ChatGPT老师了😍

1. 获取用户输入的想查询的英文

2. 根据英文去JSON文件中查找对应的Key

2.1 获取JSON文件

2.2 在JSON文件里寻找符合的Key

3. 在当前文件中查找是否存在 刚才得到的JSON.key

3.1 获取当前打开的文件的内容

3.2 对内容进行匹配 看是否存在

3.3 设置VSCode光标

部署

这个网上教程很多,简单记录下

首先要在Azure DevOps平台上生成一个Token 然后需要登录VSCode应用市场创建账号

有了Token发布者账号后,本地直接使用vsce即可发布插件

接着需要配置一下package.json文件,publisher, displayName,icon,activationEvents,contributes 等等,具体可以看仓库中我的配置

npm install -g vsce

vsce login [publisherName] 然后输入Token

vsce publish patch

然后等待即可😎😎😎😎😎