Visual studio code 多语言条件下的键绑定

Visual studio code 多语言条件下的键绑定,visual-studio-code,Visual Studio Code,我想绑定一个仅在javascript或javascript react(jsx)文件中触发的命令 理想情况下,这是我想要的: { "key": "f9", "command": "sortImports.sort", "when": "editorTextFocus && (editorLangId == 'javascriptreact' && editorLangId == 'javascript')"

我想绑定一个仅在javascript或javascript react(jsx)文件中触发的命令

理想情况下,这是我想要的:

   {
        "key": "f9",
        "command": "sortImports.sort",
        "when": "editorTextFocus && (editorLangId == 'javascriptreact' && editorLangId == 'javascript')"
    }
我试过使用(editorLangId=='javascriptreact'| | editorLangId=='javascript'),但失败了

我可以通过执行两个键绑定(一个使用javascript,一个使用javascript react)使其工作


我不太确定“何时”条件真正支持什么?可能是启动了…但我无法让它工作。

现在无法测试它,但这应该可以工作:

"when": "editorTextFocus && (editorLangId == javascriptreact || editorLangId == javascript)"

javascriptreact
javascript
不应该是我记忆中的字符串,它们被定义为语言。尝试将它们用作变量而不是字符串。

如果它是一个代码段,则在scope属性中使用多种语言将代码段添加到全局代码段文件中似乎对我有效。(在“帮助”中键入“用户代码段”,然后单击“新建全局代码段文件”)。然后将代码段添加到文件中

"myFavSnippet": {
    "scope": "javascript,javascriptreact",
    "prefix": "console.log",
    "body": [
        "console.log(${1:}$SELECTION)${0};"
    ],
    "description": "console.log"
},
这是我在keybindings.json文件中放的内容:

 {
    "key": "shift+cmd+l",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "name": "myFavSnippet"
    }  
  },
不管在中编写了什么,它似乎在不向
args
添加
langId
属性的情况下工作。即使将代码段放入特定于语言的代码段文件中,这也适用于我

这可能是真的(事实上,这两种方式都有效),但那或陈述不起作用。至少对我来说不是。