VS Code扩展,如何使大小写不敏感?

Ser*_*nov 4 syntax-highlighting visual-studio-code vscode-extensions

我正在为 VS Code 构建 ST 语言支持。在我的 language-configuration.json 文件中

"brackets": [
        ["{", "}"],
        ["[", "]"],
        ["VAR", "END_VAR"]
]
Run Code Online (Sandbox Code Playgroud)

这很好用。当我输入其中任何一个时,里面都会有缩进。但前提是varend_var是资本。我可以以某种方式表明这种语言不区分大小写并且在两种情况下都有效吗?

同样的事情在autoClosingPairs

"autoClosingPairs": [
    {"open": "{", "close": "}"},
    {"open": "[", "close": "]"},
    {"open": "(", "close": ")"},
    {"open": "VAR", "close": "END_VAR", "notIn": ["string"]}
]
Run Code Online (Sandbox Code Playgroud)

它关闭对,但前提是我以大写形式输入它。

或者我必须创建 2 个版本?

"autoClosingPairs": [
    {"open": "var", "close": "end_var", "notIn": ["string"]},
    {"open": "VAR", "close": "END_VAR", "notIn": ["string"]}
]
Run Code Online (Sandbox Code Playgroud)

同样的事情在syntaxes\st.tmLanguage.json. 例如我有

{
    "name": "keyword.control.conditional.st",
    "match": "\\b(END_)?(IF|CASE|OF|ELSE|ELSIF|THEN)\\b"
}
Run Code Online (Sandbox Code Playgroud)

仅当我输入大写字母时,这也会突出显示。如何指示不区分大小写。

小智 5

对于您的 tmLanguage.json 文件,它看起来像这样:

{
    "name": "keyword.control.conditional.st",
    "match": "(?i)\\b(END_)?(IF|CASE|OF|ELSE|ELSIF|THEN)\\b"
}
Run Code Online (Sandbox Code Playgroud)

我在这个网站上找到了答案。

至于其他部分,我没有答案,可能需要创建一个新版本。