多个条件导致我的上下文菜单项隐藏
multiple when conditions cause my context menu items to hide
我创建了一个包含几个菜单项的上下文菜单,如下所示:
"contributes": {
"commands": [{
"command": "imageOptimizer.losslessOptimization",
"title": "Lossless Optimization"
}, {
"command": "imageOptimizer.lossyOptimization",
"title": "Lossy Optimization"
}],
"menus": {
"explorer/context": [{
"command": "imageOptimizer.losslessOptimization",
"group": "7_modification",
"when": "resourceIsFile || explorerResourceIsFolder"
}, {
"command": "imageOptimizer.lossyOptimization",
"group": "7_modification",
"when": "resourceIsFile || explorerResourceIsFolder"
}
]
}
}
当我不使用 when 条件时,上下文菜单项显示正常,但当我尝试使用此处显示的两个条件时,它隐藏了这两个条件。我试图做的是让这些菜单项仅在您选择了文件或文件夹时显示在上下文菜单中。它默认执行此操作,但如果您右键单击所有文件下方的空白区域,它们也会显示,这是我不想要的。条件允许时是多个吗?如果是这样,我怎么用错了?
更新: 从 VSCode 1.37 / 2019 年 7 月版开始,||
conditions in when
clauses are supported.
when
还不支持||
,只支持&&
:
Add support for OR in package.json when clauses (#33547)
关于您的特定用例...您确定不想在单击白色时显示项目吗space?从技术上讲,这仍然是在选择一个文件夹:workspace 文件夹本身。这就是 VSCode 自己的 built-in 上下文菜单项的行为方式,您可以很方便地使用例如在空白 space:
上选择 "Reveal in Explorer" 打开 workspace 文件夹
我创建了一个包含几个菜单项的上下文菜单,如下所示:
"contributes": {
"commands": [{
"command": "imageOptimizer.losslessOptimization",
"title": "Lossless Optimization"
}, {
"command": "imageOptimizer.lossyOptimization",
"title": "Lossy Optimization"
}],
"menus": {
"explorer/context": [{
"command": "imageOptimizer.losslessOptimization",
"group": "7_modification",
"when": "resourceIsFile || explorerResourceIsFolder"
}, {
"command": "imageOptimizer.lossyOptimization",
"group": "7_modification",
"when": "resourceIsFile || explorerResourceIsFolder"
}
]
}
}
当我不使用 when 条件时,上下文菜单项显示正常,但当我尝试使用此处显示的两个条件时,它隐藏了这两个条件。我试图做的是让这些菜单项仅在您选择了文件或文件夹时显示在上下文菜单中。它默认执行此操作,但如果您右键单击所有文件下方的空白区域,它们也会显示,这是我不想要的。条件允许时是多个吗?如果是这样,我怎么用错了?
更新: 从 VSCode 1.37 / 2019 年 7 月版开始,||
conditions in when
clauses are supported.
when
还不支持||
,只支持&&
:
Add support for OR in package.json when clauses (#33547)
关于您的特定用例...您确定不想在单击白色时显示项目吗space?从技术上讲,这仍然是在选择一个文件夹:workspace 文件夹本身。这就是 VSCode 自己的 built-in 上下文菜单项的行为方式,您可以很方便地使用例如在空白 space:
上选择 "Reveal in Explorer" 打开 workspace 文件夹