You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code ST语言扩展如何设置大小写不敏感?

解决VS Code ST语言扩展的大小写不敏感配置问题

我来帮你搞定这两个配置问题,不用重复写多份大小写版本的规则,这俩需求都有简洁的实现方式:

1. 让language-configuration.json支持大小写不敏感的缩进/自动闭合

VS Code的语言配置文件本身支持在brackets和autoClosingPairs里使用带忽略大小写标志的正则表达式,不用为每个关键词的大小写变体单独配置。具体做法是把原来的固定字符串替换成带(?i)前缀的正则:

修改brackets配置

把原来的字符串配对改成正则形式,比如:

"brackets": [
  ["(?i)VAR", "END_VAR"],
  ["(?i)IF", "(?i)END_IF"],
  ["(?i)CASE", "(?i)END_CASE"],
  // 其他需要配对的关键词
]

(?i)是正则的忽略大小写标志,这样不管是var、Var还是VAR都会被识别为配对的起始符号,触发缩进和闭合逻辑。

修改autoClosingPairs配置

同样用正则来匹配开头,比如:

"autoClosingPairs": [
  { "open": "(?i)VAR", "close": "END_VAR", "notIn": ["string", "comment"] },
  { "open": "(?i)IF", "close": "END_IF", "notIn": ["string", "comment"] },
  // 其他自动闭合项
]

这里的notIn参数确保不会在字符串或注释里触发自动闭合,保持逻辑正确。

2. 让st.tmLanguage.json的语法高亮支持大小写不敏感

在TextMate语法规则里,只需要给匹配规则加上"flags": "i"属性就能开启大小写不敏感匹配,不用为每个大小写变体写单独的match规则:

单个关键词的匹配修改

比如原来匹配VAR的规则:

{
  "name": "keyword.control.st",
  "match": "\\bVAR\\b"
}

改成:

{
  "name": "keyword.control.st",
  "match": "\\bVAR\\b",
  "flags": "i"
}

批量关键词的匹配优化

如果有一组关键词需要统一设置,可以把它们放到一个正则分组里,再加上flags:

{
  "name": "keyword.control.st",
  "match": "\\b(VAR|END_VAR|IF|END_IF|CASE|END_CASE|FOR|END_FOR)\\b",
  "flags": "i"
}

这样所有括号里的关键词都会忽略大小写进行匹配,同时保持单词边界\b的限制,避免误匹配到包含这些词的标识符(比如不会把VARIABLE当成VAR高亮)。

记得修改后重新加载VS Code的扩展(可以按Ctrl+Shift+P选择"Reload Window"),就能看到配置生效了。

内容的提问来源于stack exchange,提问作者Sergey Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:21:36