VS Code 插件

IDE

Posted by nomadli on October 16, 2018

定制性

  • VS Code不允许访问UI域,速度快,进程隔离
  • Atom 定制性强,速度慢,进程隔离

插件

  • 插件在独立Node进程中运行(extension host process),能够访问VS Code扩展API
  • 懒加载,在注册activation events事件触发下激活
onLanguage:${language} 打开特定语言的文档
onCommand:${command} 通过Command Palette执行特定命令
onDebug 进入调试模式
workspaceContains:${toplevelfilename} 打开的文件夹里含有特定文件
onView:${viewId} 展开指定view
  • 扩展点
configuration 插件配置项,用户可以通过Settings设置
configurationDefaults 插件配置项默认值
commands  添加命令,用户可以通过Command Palette输入特定命令激活插件功能
menus     添加与命令关联的菜单项,用户点击菜单项时执行对应命令
keybindings 添加与命令关联的快捷键,用户按下特定快捷键时执行对应命令
languages 与文件类型建立关联或扩展新语言,用户打开(满足某些要求的)特定文件类型时执行对应命令
debuggers 添加debugger,通过VS Code debug协议与IDE通信
breakpoints 配合debuggers,声明对debugger支持的(编程)语言类型
grammars 新增TextMate语法描述,语法高亮
themes 添加定制主题
snippets 添加代码片段
jsonValidation 添加json格式校验
views 新增左侧文件查看器视图和调试视图分栏
problemMatchers 添加错误匹配,从lint结果解析出error,warning等
problemPatterns 配合problemMatchers,定义匹配模式

menus 支持
Command Palette搜索框下方菜单 commandPalette
文件查看器右键菜单 explorer/context
编辑器
  右键菜单 editor/context
  标题栏菜单 editor/title
  标题栏右键菜单 editor/title/context
调试视图
  调用栈右键菜单 debug/callstack/context
SCM(源码管理)视图
  标题栏菜单 scm/title
  文件分组菜单 scm/resourceGroup/context
  文件状态菜单 scm/resource/context
  文件变动菜单 scm/change/title
左侧视图
  文件查看器分栏 view/title
  调试视图分栏 view/item/context
  • package.json 插件清单文件, activation events、信息、扩展的功能等
  • 安装插件不会npm install依赖,需要将依赖打包进插件