Better Input:VSCode插件开发指南
Better Input:VSCode插件开发指南
0.准备工作
先安装(更新) node.js
和 nmp
node
更新去 Node.js 官网下载最新版本,然后重新安装在原来的安装路径下(第一次下载可只进行第三步)
node -v
查看当前版本是否是最新版本where node
查看之前的安装路径- 去 Node.js 官网下载
LTS
版本 - 执行
node -v
查看现在的版本信息
npm -v
更新- 查看当前版本
npm install -g npm
更新版本npm cache clean --force
清理npm
缓存数据
1.创建项目
npm install -g yo
安装 Yeoman 工具集npm install -g generator-code
安装generator-code
模块yo code
创建新项目
2.编写插件
打开项目,按下 F5
,会打开一个 扩展开发宿主VSCode 这个窗口包含了你编写的插件
在命令面板( Ctrl+Shift+P
)中输入Hello World
命令,会在右下角出现 Hello World from *****!
的提示,说明插件运行成功了。
如果右下角没有出现提示,可能是插件默认支持的 VSCode 版本过高,高于你当前的 VSCode 版本。打开项目里的 package.json
文件,将 "vscode":
后面的版本改低一点: 1.8.1
标识你的插件只与1.8.1
的 VSCode
兼容, ^1.8.0
则表示你的插件向上兼容,包括 1.8.1, 1.9.0
等等。
文件目录如下:
1 | extension name/ |
框架搭好后主要修改两部分:extension.js
和 package.json
package.json
1 | // 插件名称,必须全部小写且无空格 |
extension.js
1 | // 引入VSCode的API模块 |
以上是主要会用到或者修改的部分
3. 本插件实现方法
出于安全性和可控性的考虑, VSCode
并没有提供原生的 API
来直接模拟键盘事件。尽管 VSCode
本身不提供直接的键盘模拟事件的 API
,但仍可以尝试使用第三方的 JavaScript
库,如robotjs
来模拟键盘事件。 robotjs
是一个跨平台的 Node.js
库,可以用于模拟键盘和鼠标事件。用户想使用他必须先使用 npm
进行安装: npm install robotjs
然后就是疯狂报错 🤣👉🤡
而且这个方法不够优雅,不能够做到开箱即用(需要用户自己配置环境)
于是在网上一顿乱搜,找到了 AutoHotkey ( 什么是 AHK
? ) AutoHotKey
(缩写为 AHK
)是一个免费开源的自动化脚本语言和工具,用于自定义键盘快捷键、自动化任务和创建自定义的宏。通过预先编写好的 AHK
脚本,并将其打包成 exe
文件,可以在没有安装 AutoHotkey
的电脑上运行脚本。
接着就是编写 AHK
脚本了。我在 GitHub
上找到一份用 AutoHotKey V2
版本 编写的切换输入法脚本
然后直接在 extension.js
中适时调用切换输入法的 exe
即可
4.发布插件
先在
package.json
中填好插件的图标和作者, 然后修改框架里的README.md
文件1
2"icon": "图标.png",
"publisher": "作者",直接在
VSCode
终端安装vsce
:npm install -g vsce
如果出现报错,可以在
cmd
中安装,效果也是一样的
- 在
VSCode
终端安装打包插件 :vsce package
成功打包会在根目录自动生成一个 .vsix
文件
如果出现上图报错, 以管理员身份打开 PowerShell
(按下 win 后输入 PowerShell
),在打开的 PowerShell
窗口中,运行命令 Set-ExecutionPolicy RemoteSigned
以解除脚本执行策略的限制。
发布到插件市场
打开 Extensions for Visual Studio 右上角的
Publish extensions
,再点击左侧的Create publisher
填完基本信息后返回。在New extension
中选择Visual Studio Code
,点击如下红框内按钮上传刚才生成的.vsix
文件
注意,上传的 logo
应为 128px X 128px
的,在这个网站可以更改图片尺寸
上传完成后等几分钟就能在插件市场中找到这个插件了