首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >匹配TextMate / Sublime Text / Atom语言语法中的嵌套构造

匹配TextMate / Sublime Text / Atom语言语法中的嵌套构造
EN

Stack Overflow用户
提问于 2014-12-13 23:03:31
回答 4查看 1.4K关注 0票数 2

在为Github编写语法以突出用球拍语言编写的程序时,我偶然发现了一个问题。

在球拍中,#|开始一个多行注释,|#结束它。

问题是多行注释可以嵌套:

代码语言:javascript
复制
  #| a comment  #| still a comment |# even 
                                      more comment |#

这是我的非工作尝试:

代码语言:javascript
复制
repository:
  multilinecomment: 
    begin:         \#\|
    end:           \|\#
    name:          comment
    contentName:   comment
    patterns:
    - include:     "#multilinecomment"
      name:        comment
    - match:       ([^\|]|\|(?=[^#]))*
      name:        comment

匹配模式的目的是:

  1. "#multilinecomment"多行注释可以包含另一个具有子表达式含义的多行comment.
  2. ([^\|]|\|(?=[^#]))*

^|不是non-#的任何字符|(?=^#)后跟||

因此,整个表达式匹配一个不包含|#的字符串

更新:

从TextMate邮件列表上的Allan Odgaard那里得到了答案:

http://textmate.1073791.n5.nabble.com/TextMate-grammars-and-nested-multiline-comments-td28743.html

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27460207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档