根据命令(shift+cmd+p)触发
根据输入内容触发
根据配置文件(.json)触发
右键处理
其他说明
配置文件
根据命令提示与执行的就是官网给的hello world,核心代码就是 activate
方法下的
1 | var disposable = vscode.commands.registerCommand('extension.sayHello', () => { |
输入内容的提示与执行,
接口
vscode.CompletionItemProvider
,方法provideCompletionItems
关键代码
1 | class CssRemProvider implements vscode.CompletionItemProvider { |
调用,关键一点,什么文件触发! 在
activate
内1
2
3
4
5let provider = new CssRemProvider();
// 当在css文件里是触发
let disposable0 = vscode.languages.registerCompletionItemProvider('css', provider);
// 加入总线
context.subscriptions.push(disposable0);关于文件类型的支持,两种办法
const GO_MODE: vscode.DocumentFilter = { language: ‘go’, scheme: ‘file’ }; // 对go语言的支持,引用
1
let disposable0 = vscode.languages.registerCompletionItemProvider(GO_MODE, provider);
package.json 下配置
1
2
3
4
5
6
7
8
9
10"activationEvents": [
// "*" // 全部类型
"onLanguage:html",
"onLanguage:vue",
"onLanguage:css",
"onLanguage:less",
"onLanguage:scss",
"onLanguage:sass",
"onLanguage:stylus"
],
根据配置文件(json)的触发,一般用于对语言提示的支持,着色等,关键在json
文件
1 | "contributes": { |
右键 配置文件里的功能,可以省去在命令框中输入内容.
1 | "menus": { |
从配置文件引入参数
配置文件
1
2
3
4
5
6
7
8
9
10
11"configuration": {
"type": "object",
"title": "demoCmd configuration",
"properties": {
"demoCmd.encoding": { // demoCmd事件,encoding参数
"type": "string", // 类型
"default": "utf-8", // 值
"description": "default file encoding" // 说明
}
}
},接..
1
2let cog = vscode.workspace.getConfiguration('demoCmd');
cog.encoding;// 获得的参数
配置文件简单说明 转的
1 | { |