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

如何在VSCode的tmLanguage.json中禁用嵌套块注释?

解决自定义语言非嵌套块注释的VSCode语法高亮配置问题

要实现不支持嵌套的块注释(即从第一个/*开始,到第一个*/结束,中间的/*仅作为注释内容,不触发新注释),你需要修改tmLanguage.json中的块注释配置,阻止内部/*触发递归的注释匹配:

{
  "comment": "Block comment",
  "name": "comment.block.cxm",
  "begin": "/\\*",
  "end": "\\*/",
  "patterns": [
    {
      "match": "/\\*",
      "name": "comment.block.cxm"
    }
  ]
}

配置说明

  • 原配置的问题在于:VSCode的语法高亮会递归应用规则,当注释内部出现/*时,会被识别为新的注释起始点,导致需要额外的*/才能结束外层注释。
  • 添加的patterns规则会匹配注释内部的/*,并将其标记为当前注释的一部分,而非新的注释起始,这样整个注释块会从第一个/*持续到第一个*/结束,完美适配你提供的两种场景:
    1. 单行带内部/*的注释:/* /* */会被完整识别为单个注释块
    2. 多行带内部/*的注释:
      /*
      /*
      */
      
      整个三行内容会被识别为单个注释块

你之前尝试的begin: "/\\*[\\s\\S]*(?=\\*/)"错误地将注释内容合并到begin的匹配中,导致end规则无法正常触发,因此无法适配多行场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:36:20