命令
我们在前面HelloWord章节中已经提到了命令写法,这里再重温一下。
context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => {
vscode.window.showInformationMessage('您执行了extension.sayHello命令!');
}));
然后在清单文件声明:
"commands": [
{
"command": "extension.sayHello",
"title": "Hello World"
},
]
vscode.commands.registerCommand
是注册命令的API,执行后会返回一个Disposable
对象,所有注册类的API执行后都需要将返回结果放到context.subscriptions
中去。
回调函数参数
回调函数接收一个可选参数uri
:
- 当从资源管理器中右键执行命令时会把当前选中资源路径uri作为参数传过;
- 当从编辑器中右键菜单执行时则会将当前打开文件路径URI传过去;
- 当直接按
Ctrl+Shift+P
执行命令时,这个参数为空;
示例:
context.subscriptions.push(vscode.commands.registerCommand('extension.demo.getCurrentFilePath', (uri) => {
vscode.window.showInformationMessage(`当前文件(夹)路径是:${uri ? uri.path : '空'}`);
}));
package.json
如下:
原文链接