contributes字段用得比较多的有configuration、commands、keybindings、snippets、jsonValidation等。下面一一介绍: 1)、configuration 自定义你扩展的配置项。你可以在扩展中通过如下命令获取用户的配置值: vscode.workspace.getConfiguration('myExtension'); 示例: {"contributes":{"configuration":{"type":"object","title...
创建的目录结构非常简单,我们只需要关注src/extension.ts和package.json即可。 extension.ts 文件中 export 两个方法:activate和deactivate,表示激活和销毁时执行的方法,通常我们将核心代码都写在 activate 函数中。 import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { } ...
* @param {vscode.ExtensionContext} context */ function activate(context) { // Use the console to output diagnostic information (console.log) and errors (console.error) // This line of code will only be executed once when your extension is activated console.log('Congratulations, your extension ...
此时一旦安装了该拓展,我们就可以在VS Code中的命令面板(我在Mac上的快捷键是Shift+cmd+p)中找到“Hello World”,输入便会触发extension.sayHello这条命令,而上文中的拓展激活事件项activationEvents中如果定义的内容是"onCommand:extension.sayHello",则激活事件被触发,拓展的代码被激活。 keybindings 当然,和commands...
keybindings:可以设置快捷键 languages:设置语言特点,包括语言的后缀等 grammars:可以在这个配置项里设置描述语言的语法文件的路径,vscode可以根据这个语法文件来自动实现语法高亮功能 snippets:设置语法片段相关的路径 . . . . . extension.js extension.js是插件工程的入口文件,当插件被激活,即触发package.json中的activ...
1.在extension.ts中编写代码 在插件激活activate中编写注册代码的命令,以及把注册的disposable对象推入subscription中,具体代码如下: //该命令是针对文件中所有内容进行转换vscode.commands.registerTextEditorCommand('helloworld.helloWorld',(textEditor,edit) =>{constdoc = textEditor.document;conststart =newvscode.Posi...
"keybindings": [{ "command": "extension.gitblame", "key": "alt+b" }] } 于是乎,一个右键选项Git blame就会出现在你选择一段代码后的右键菜单里 懒加载扩展 一个扩展根据需求,并不一定要随vscode的启动而启动,那样影响vscode的整体性能,而且没什么特别的好处。所以我们要懒加载。修改package.json,增加/...
"displayName": "MyExtension", // 描述信息 "description": "An awesome vscode extension", // 版本号 semver格式 "version": "0.0.1", // 在插件市场展示的图标 "icon": "img/icon.png", // 发布者名字 "publisher": "ayqy", // vscode版本要求 ...
P.S.实际上,非要扩展UI,也是有办法的(逃出插件运行环境,但要费不少力气),具体见access electron API from vscode extension,后续笔记会详细介绍 二.运行环境 为了性能与兼容性,插件在独立的进程(称为extension host process)中运行,并且不允许直接访问DOM,所以提供了一套内置的UI组件,比如智能提示(IntelliSense) ...
{"command":"extension.littleemacs.moveBeginningOfBuffer","title":"move-beginning-of-buffer"}],"keybindings":[{"command":"extension.littleemacs.moveBeginningOfBuffer","key":"alt+["}]},"scripts":{"vscode:prepublish":"yarn run compile","compile":"tsc -p ./","watch":"tsc -watch -p ....