首页 > 解决方案 > VSCode 自定义语言扩展 - 关键字可以不区分大小写

问题描述

我正在创建一个自定义语言扩展来为一种奇怪的、很少使用的语言着色语法。

在这种特定语言中,关键字和命令不区分大小写 - 但我创建的语言扩展似乎区分大小写。

这是我称为“命令”的组的示例:

"commands": {
  "patterns": [
    {
      "name": "keyword.control.wbt",
      "match": "\\b(if|IF|If|iF|then|else|elseif|endif|goto|gosub|exit|return|for|next|while|endwhile|break|drop|errormode|continue|switch|case)\\b"
    }
  ]
},

您会注意到,我为“if”的每个可能的大写形式创建了条目,这允许在我用来测试的源代码中对 IF 和 If 进行着色。

有没有办法告诉 VSCode 忽略大小写?

标签: visual-studio-codevscode-extensions

解决方案


您是否尝试过使用 RegEX 模式使其不区分大小写?对于您的示例,请尝试:

"commands": {
  "patterns": [
    {
      "name": "keyword.control.wbt",
      "match": "(?i)\\b(if|then|else|elseif|endif|goto|gosub|exit|return|for|next|while|endwhile|break|drop|errormode|continue|switch|case)\\b"
    }
  ]
},

请注意,我删除了其他变体if


推荐阅读