VS Code - 查找快捷方式 'when' 表达式的 panel/view 上下文名称

VS Code - find panel/view context name for shortcut 'when' expression

我正在尝试向我的 VS Code 实例添加一些快捷方式,我想使用 when 表达式来限定它们的范围以避免冲突。

唉,我正在努力寻找在表达式中使用的正确上下文名称来实现我想要的。

我搜索了文档,发现这里列出了其中的一些:https://code.visualstudio.com/docs/getstarted/keybindings#_contexts

但是,正如文档所说:

The list above isn't exhaustive and you may see some when contexts for specific VS Code UI in the Default Keyboard Shortcuts.

当然,我想要确定快捷方式范围的上下文不在列表中;)

因此,我想知道是否有办法在 VS Code panel/view 中找到特定 panel/view 的上下文名称 UI。

为了说明这一点,假设我只想在列出可用 NPM 脚本的面板获得焦点时激活快捷方式...应该使用什么上下文名称来实现?

我试过了 - 没想到它会起作用 - 但它似乎:

"when": "focusedView == npm"

类似的信息是 active/focussed view context clauses

一般来说,您可以:

  1. 打开开发者工具:Help/Toggle Developer Tools 并转到控制台
  2. 在 VS 代码命令面板中选择 Inspect Context Keys
  3. 单击 vscode window
  4. 中的一个元素
  5. 查看工具控制台并展开其中的最后一项以显示所有当前上下文(when 子句)。

但是当我这样做时,我没有发现任何有用的东西,而且 focusedView = "" 在那里,所以没有帮助。

所以我试过了

{
  "key": "alt+i",
  "command": "workbench.action.terminal.sendSequence",
  "args": { "text": "howdy" },
  "when": "focusedView == npm"
},

只是将 howdy 打印到终端进行测试。我让它工作的唯一方法是当 npm scripts viewlet header 或其内容具有焦点时。