如何构造加入终端的“When”条件?

How to construct the `When` condition for joining terminals?

连接终端的命令:workbench.action.terminal.joinInstance.

我能想到的必要条件:

  1. Terminal tabs 很专注。
  2. 在终端选项卡中选择了两个或更多终端。

我想到的最好的是:

terminalProcessSupported && terminalTabsFocus && !terminalTabsSingularSelection

但是上面的和terminalTabsMultipleSelections不一样(不存在)。

有了 this fix,现在可以安全地使用 terminalProcessSupported && terminalTabsFocus


原答案:

根据 Daniel Imms 的 comment

We use internally to make it work in the context menu terminalProcessSupported && !terminalTabsSingularSelection

source code在这方面:

precondition: ContextKeyExpr.and(
  KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED,
  KEYBINDING_CONTEXT_TERMINAL_TABS_SINGULAR_SELECTION.toNegated(),
)

所以目前来说,还是用terminalProcessSupported && terminalTabsFocus && !terminalTabsSingularSelection比较好。