1。前言VSCode是微软的一款非常轻量级的编辑器。虽然它的体积很轻,但是却有着极其强大的功能。原因是VSCode的很多强大功能都是基于插件实现的。IDE只提供了基本的框架和基本的功能。我们需要使用插件来丰富和扩展它的功能。由于插件的重要作用,现在VSCode的插件社区非常庞大。我们平时使用的开发小工具,大部分都可以在这个应用市场找到。打开VScode后,界面左侧是应用市场的入口,我们可以在这里搜索自己需要的插件。但是我们的需求总是复杂多变的,总有一些现有插件无法满足的场景。这时候我们就需要借助VScode开放的接口来手动实现我们需要的功能。本文主要带大家从一个简单的插件开发入手。更多功能更复杂的插件需要根据我们的具体需求查阅官方文档。2.项目初始化第一步,我们需要安装VScode官方提供的脚手架yo,并使用它来生成项目://安装脚手架npminstall-gyogenerator-code第二步,初始化一个sample项目使用如下命令:yocode在初始化过程中,我们需要进行一些偏好设置,根据需要进行选择:然后我们可以使用VSCode打开上面步骤生成的项目,我们可以看到目录结构为接下来,两个最重要的文件是package.json和extension。js,了解了这两个文件之后,基本上就可以开始开发一个VSCode插件了。3.package.json文件package.json文件是VSCode扩展的manifest文件,包含很多字段。官方文档对每个字段也有专门的说明:manifest。这里只关注初始化后生成的文件,主要包括以下几个关键节点:1.main:指定项目的入口文件,从中可以看出入口文件为extension.js;2.Contributes:插件的贡献点,插件最重要的配置。Registercontributesthroughextensions用于扩展VisualStudioCode中的各种技能。官方文档指导:contributes。这里在commands中注册了一个名为sample.helloWorld的命令。这个命令其实需要在./extension.js中实现(这部分是重点,后面再说);3.activationEvents:这个节点通知VScode插件在什么情况下会被激活,官方文档已经说明了激活的时机:activationEvents,上面的截图是我们执行sample.helloWorld命令的时候激活的,还有更多场景:onCommand:调用命令时激活onLanguage:打开解析为特定语言的文件时激活,例如“onLanguage:python”*:一旦启动vscode,插件就会被激活onFileSystem:WheneverreadfromaspecificprogramonViewforfilesorfolders:每当具有指定id的视图在VSCode的侧边栏中展开时...更多其他内容,请自行参考官方文档。extension.js文件extension.js文件就是上面提到的package.json中的main字段对应的文件(文件名可以自定义)。这个文件主要导出了两个方法:activate和deactivate。两个方法的执行时机如下:activate:插件激活时执行的方法deactivate:插件销毁时调用的方法。初始化项目的主要文件后,就可以调试运行了。F5进入调试模式,会打开一个新的窗口,如下图:这个窗口标记为“扩展开发主机”,Ctrl+Shift+P,输入我们之前定义的命令,执行,在下方弹出一个文本右上角:我们生成的demo工程已经运行成功。接下来,我们对插件做一点小改动,使其可以显示今天的日期,并为其绑定快捷键。package.json修改如下:extensions.js文件修改如下:运行,点击ctrl+f9,正常运行:除了配置快捷键运行命令外,还可以配置右键单击菜单。Contributes可以配置菜单:运行后,分别在编辑器和资源管理器面板右击可以看到这个命令:6.总结以上是一个简单的入门级实用教程,让大家了解基本思路开发VSCode插件。以后如果遇到更复杂和定制化的需求,可以参考官方文档深入学习。插件开发有必要掌握吗?葡萄认为,如果暂时没有这个需求,也不需要理解太深,但作为一个自律的实体程序员,可以先了解一下基本思想。因为在我们实际工作中,有时候对于一些复杂的需求,一个插件可以解决很多问题,大大提高工作效率。比如这样一个场景,我们在项目中使用ActiveReportsJS等报表控件,在写代码的过程中有时需要修改一些报表的设计。然后我们每次使用的时候,要么启动项目打开报表设计器,要么通过桌面报表设计器打开报表。但实际上,通过VScode插件API提供的CustomEditor接口,我们完全可以实现一个高度自定义的特殊报表文件的私有编辑器,点击报表文件,直接使用这个控件提供的设计器来预览文件,如下图所示:这个插件的实现进一步提高了我们的工作效率,避免了做很多重复性的工作。关于CustomEditor接口,VSCode也提供了官方示例vscode-extension-samples,有兴趣的可以了解一下。本文到此结束,感谢观看~~
