我正在从这个页面开始构建一个VS代码扩展。现在我想在运行命令extension.timerStart
后将其隐藏在调色板菜单中。我已经阅读了这一页,但没有帮助。我有package.json的以下代码。我如何使varFromMyExtension===false
部分工作?
"contributes": {
"commands": [
{
"command": "extension.timerStart",
"title": "Timer Start"
}
],
"menus": {
"commandPalette": [
{
"command": "extension.timerStart",
"when": "varFromMyExtension===false"
}
]
}
我认为不可能在when
子句中直接访问扩展中的变量。但是,您可以访问settings.json
的任何配置。
来自文档(本章底部(:
注意:您可以在此处使用任何计算结果为前缀为
"config."
的布尔值的用户或工作区设置。
因此,当您的扩展提供名为varFromMyExtension
的boolean
配置时,您应该能够在when
子句中使用它。然后,这个配置也可以通过编程进行操作。
所以你的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)"
}
}
}
}
但请记住,用户也可以查看和编辑此设置。