VScode插件 命令 菜单 快捷键

http://blog.haoji.me/vscode-plugin-command-and-menu.html  相关都有  然后有一些我开始没有清楚的整理一下

1 注册命令 

context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => {
    vscode.window.showInformationMessage('您执行了extension.sayHello命令!');
}));
所有的  registerCommand 的结果 都要放在 context.subscriptions.里面

注册后有了这个命令了  然后想 怎么样触发这个命令

"commands": [
    {
        "command": "extension.sayHello",
        "title": "Hello World123123"
    },
]
在命令面板找到对应的title 输入或者点击 就会触发这个命令 

出发以后 怎么样 找到对应的回调函数

命令激活exrension 执行 extension.ts的 activate的这个函数  找的对应命令的回调函数执行。

回调函数可以接收一个url作为参数

context.subscriptions.push(vscode.commands.registerCommand('extension.demo.getCurrentFilePath', (uri) => {
    vscode.window.showInformationMessage(`当前文件(夹)路径是:${uri ? uri.path : '空'}`);
}));

2 编辑命令

// 编辑器命令
context.subscriptions.push(vscode.commands.registerTextEditorCommand('extension.testEditorCommand', (textEditor, edit) => {
    console.log('您正在执行编辑器命令!');
    console.log(textEditor, edit);
}));

 

 

仅在编辑器被激活时才能使用(暂时我也不明白什么意思 用法与普通注册命令是一样的)区别是参数发生变化 有textEditor, edit这两个参数

3执行命令

我自己尝试了一下应该是extension被激活 调用activate 的时候就会执行执行命令的函数  然后执行此命令

vscode.commands.executeCommand('命令', 'params1', 'params2', ...).then(result => {
    console.log('命令结果', result);
});
 

4获取所有命令

// 获取所有命令
vscode.commands.getCommands().then(allCommands => {
    console.log('所有命令:', allCommands);
});
在何时 when 

  • resourceLangId == javascript:当编辑的文件是js文件时;
  • resourceFilename == test.js:当当前打开文件名是test.js时;
  • isLinuxisMacisWindows:判断当前操作系统;
  • editorFocus:编辑器具有焦点时;
  • editorHasSelection:编辑器中有文本被选中时;
  • view == someViewId:当当前视图ID等于someViewId时;
  •  

5 复杂命令5

let uri = vscode.Uri.file('/some/path/to/folder'); // import * as vscode from 'vscode';

// 路径 只尝试成功了 绝对路径 D:\测试\node1  并且需要变成反斜杠  D:/测试/node1
commands.executeCommand('vscode.openFolder', uri).then(sucess => {
	console.log(success);
});

 

在vscode中引用 或者执行其他的文件

在extension.ts中的  activate函数中

require()(context) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值