TextMate 语法:检测空格缩进的注释

TextMate grammar: detecting whitespace-indented comments

提问人:Richiban 提问时间:3/20/2023 更新时间:3/20/2023 访问量:63

问:

我有一种玩具(虚构的)编程语言,我正在玩,叫做 Nyx。我想为它创建一个基本的 TextMate 语法,以便在 VS Code 中突出显示基本语法。

我想要的评论行为是,只有一种方法可以开始评论;通过使用 char 序列。关键是注释还包括缩进次数多于开始注释的任何后续行。下面是一个示例:''''

This is not a comment

'' This IS a comment
   So is this

   And this also

This is NOT a comment
some.code(that.isNot(aComment)) '' This IS a comment
                                   And this second line is too!

back.toCode<Again>()

如何为 Vs Code 创建这样的 TextMate 规则?在我的部分中,我开始了(基于我在网上看到的其他人语法的一些内容):repository

"comments": {
      "patterns": [
        {
          "name": "comment.line.double-apos.nyx",
          "begin": "(^[ \\t]+)?(?='')",
          "beginCaptures": {
            "1": { "name": "punctuation.whitespace.comment.leading.nyx" }
          },
          "end": "(?!\\G)"
        }
      ]
    }

但我不确定如何继续;我不知道还有另一种语言的注释以这种方式工作,所以我没有任何东西可以复制。

正则表达式 visual-studio-code 语法 textmate

评论

0赞 The fourth bird 4/7/2023
是否要停止以非 whitspace 字符开头的行的注释,例如"end": "^(?=\\S)"
0赞 Richiban 4/20/2023
@Thefourthbird 不一定;第一个非注释行是与注释开头的缩进级别相同或更低的任何行。将其视为与 Python 中的函数相同,该函数以该行和所有进一步缩进的行开头并继续。def f():

答: 暂无答案