Kar*_*thi 6 .net visual-studio-code vscode-extensions blazor .net-core-3.0
目前,我正在为 .NET Core 3.0 blazor Web 项目开发一个简单的插件。在这种情况下,如果 .net core 3.0 blazor 项目,我想启用该加载项,并且如果该项目不是 .net core 3.0 blazor 项目,则不会显示我的自定义加载项。
我在 google 上搜索了有关 vscode 加载项扩展的信息,并找到了 vscode 的默认 when 子句,例如“when”:“explorerResourceIsFolder”等。但我希望工作区标头中的加载项具有类似项目是否为 .net core 3.0 blazor 的条件。我不知道如何以及在哪里添加此逻辑。
我需要为 When 子句添加我自己的条件以显示我的加载项。另外,如果项目有我的自定义程序集,我需要使用我自己的自定义 when 子句在资源管理器标题上下文菜单中显示另一个加载项。
您能建议我如何实现这一目标吗?
以下是我的编码部分:
包.Json
"commands": [
{
"command": "extension.openTemplatesFolder",
"title": "Open Templates Folder",
"category": "Project"
},
{
"command": "extension.saveProjectAsTemplate",
"title": "Save Project as Template",
"category": "Project"
},
{
"command": "extension.deleteTemplate",
"title": "Delete Existing Template",
"category": "Project"
},
{
"command": "extension.createProjectFromTemplate",
"title": "Create Project from Template",
"category": "Project"
}
],
"menus": {
"explorer/context": [
{
"command": "extension.saveProjectAsTemplate",
"when": "myContext == success && explorerResourceIsRoot",
"group": "projectTemplates@1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
扩展名.ts
const value = "success";
vscode.commands.executeCommand('setContext', 'myContext', `${value}`);
export function activate(context: vscode.ExtensionContext) {
// create manager and initialize template folder
let projectTemplatesPlugin = new ProjectTemplatesPlugin(context, vscode.workspace.getConfiguration('projectTemplates'));
projectTemplatesPlugin.createTemplatesDirIfNotExists();
// register commands
// open templates folder
let openTemplatesFolder = vscode.commands.registerCommand('extension.openTemplatesFolder',
OpenTemplatesFolderCommand.run.bind(undefined, projectTemplatesPlugin));
context.subscriptions.push(openTemplatesFolder);
// save as template
let saveProjectAsTemplate = vscode.commands.registerCommand('extension.saveProjectAsTemplate',
SaveProjectAsTemplateCommand.run.bind(undefined, projectTemplatesPlugin));
context.subscriptions.push(saveProjectAsTemplate);
}
Run Code Online (Sandbox Code Playgroud)
笔记:
vscode.commands.executeCommand('setContext', 'myContext', value);在显示加载项之前不会执行。点击插件后执行
您可以使用setContext以下命令:
vscode.commands.executeCommand('setContext', 'myContext', `value`);
Run Code Online (Sandbox Code Playgroud)
myContext然后在您的子句中使用when。
该命令目前没有详细记录,但这里有一个在 git 扩展中使用该命令的示例
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |