多When条件导致VS Code上下文菜单项隐藏问题求助
嘿,我来帮你搞定这个上下文菜单隐藏的问题!先扫一眼你的代码,能看到几个明显的小问题,正是它们导致菜单项不显示:
1. 代码里的语法/字段缺失问题
你的第二个菜单项imageOptimizer.lossyOptimization有两处不完整:
group字段只写了"7_modifi...",没补全完整的分组名(比如和第一个保持一致的"7_modification")- 完全缺失了
when条件,VS Code不知道什么时候该显示这个菜单项,自然会把它隐藏起来
2. When条件的逻辑优化
你第一个菜单项的when条件写的是resourceIsFile || explorerResourceIsFolder,这里其实有个小坑:resourceIsFile是针对编辑器中打开的资源的变量,而我们在资源管理器上下文菜单里,应该用explorerResourceIsFile来判断选中的是文件,这样更准确。
修正后的完整代码
"contributes": { "commands": [{ "command": "imageOptimizer.losslessOptimization", "title": "Lossless Optimization" }, { "command": "imageOptimizer.lossyOptimization", "title": "Lossy Optimization" }], "menus": { "explorer/context": [{ "command": "imageOptimizer.losslessOptimization", "group": "7_modification", "when": "explorerResourceIsFile || explorerResourceIsFolder" }, { "command": "imageOptimizer.lossyOptimization", "group": "7_modification", "when": "explorerResourceIsFile || explorerResourceIsFolder" }] } }
额外调试技巧
如果之后还是遇到菜单项不显示的情况,可以打开VS Code的命令面板(Ctrl+Shift+P/Cmd+Shift+P),执行Developer: Inspect Context Keys命令,然后点击资源管理器里的文件或文件夹,就能看到当前选中项对应的所有上下文变量,这样你就能精准判断when条件是否满足了。
内容的提问来源于stack exchange,提问作者Pallas
相关产品推荐
相关产品推荐

