# 扩展Visual Studio Code
所有的VS Code插件都共享一套注册、加载和连接VS Code extensibility API
的通用模型,但其中有两大插件类型与通用插件模型有些许出入——语言服务器
和调试器
。他们有一些专属的调用协议,我们会在后面的章节里单独介绍这两个插件类型。
# 插件
插件激活后会运行在我们的共享插件主机环境(shared extension host process)中,这种插件进程分离的设计确保VS Code能在繁杂的任务中不会宕机。
插件能够的运行的时机包括:
激活
:当检测到某类文件/存在某类文件/使用命令面板/使用组合键时,加载插件工作区
:打开编辑器、状态栏、信息提示事件
:编辑器的生命周期事件,如:open, close, change
等等编辑器
:读取文件,操作和选择文本编辑器加强
:加强诸如IntelliSense,Peek,Hover,Diagnostics等富文本编辑支持功能
我们提供了两个端到端的基础教程,供你快速入门:
- Hello World - 生成一个本地运行的基础插件,了解插件的目录结构、配置文件,理解
激活
的触发机制。 - Word Count - 根据特定的文件类型更新状态栏,响应编辑器的文本操作,学习文件被删除时该如何处理。
另外,首先建议你阅读一下扩展性原则和模式部分,能帮助你了解贯穿整个extensibility API
的编程模式。
# 语言服务器
语言服务器是一种特殊的插件,它能加强VS Code中各种语言的编辑体验。有了语言服务器后,你可以实现诸如“转跳到定义”、“错误检查”和其他语言功能了。
# 调试适配器(Debug Adapter)
VS Code实现了一套原生的调试器UI,并通过调试适配器
连接到调试器插件
上。调试适配器专属进程控制VS Code和VS Code debug protcol
的通信,它能通过任何语言来实现。
详情查看创建调试器插件
尝试VS Code插件最简单的方式就是去插件市场,里面有非常多有用的插件,安装然后试试这些插件,你说不定会有所启发。
# 语言插件指南
通过extensibility API
学习如何使用语言服务器协议——语言插件指南。
# 主题,代码片段和高亮
在VS Code中你可以自定义主题、代码片段和语法高亮。通过TextMate配置文件,你可以很轻松地重用你原来的主题,或者你也可以在你的插件中直接使用.tmTheme .tmSnippets .tmLanguage
文件。
# 写插件吧!
使用Yeoman插件生成器轻松创建插件项目。
# 测试你的插件
我们还提供了强力的测试支持,通过VS Code API轻松测试你的VS Code实例。
# 获取插件灵感
大量的社区灵感应该转化为插件而不是产品本身的功能,这样用户才有更广的选择余地,VS Code团队将潜在的插件打上了*extension-candidate
标签,你可以通过VS Code repository的issue列表找到还在开发中的插件,为喜欢的插件贡献一份力量吧。