我正在从this页面开始构建VS代码扩展。现在我想在运行它之后隐藏在调色板菜单中的命令extension.timerStart
。我已经阅读了this页面,没有帮助。我有package.json的代码。如何让varFromMyExtension===false
部分工作?
"contributes": {
"commands": [
{
"command": "extension.timerStart",
"title": "Timer Start"
}
],
"menus": {
"commandPalette": [
{
"command": "extension.timerStart",
"when": "varFromMyExtension===false"
}
]
}
我认为不可能直接在when
子句中从您的扩展中访问变量。但是,您可以访问settings.json
的任何配置。
来自docs(在本章的底部):
注意:您可以使用任何用户或工作空间设置,其值为
"config."
,其值为布尔值。
所以当你的扩展贡献一个名为boolean
的configuration varFromMyExtension
时,你应该能够在when
条款中使用它。这个配置也可以是manipulated programmatically。
所以你的package.json
可能包含这样的东西(未测试):
"contributes": {
"commands": [
{
"command": "extension.timerStart",
"title": "Timer Start"
}
],
"menus": {
"commandPalette": [
{
"command": "extension.timerStart",
"when": "!config.myextension.varFromMyExtension"
}
]
},
"configuration": {
"type": "object",
"title": "Indicates whether ...",
"properties": {
"myextension.varFromMyExtension": {
"title": "My title.",
"description": "My description",
"type": "boolean",
"default": false,
"pattern": "(true|false)"
}
}
}
}
但请记住,用户也可以查看和编辑此设置。