所以目标块是这样的:
/* some comments
more
end */
/*
和*/
之间的任何内容都被视为评论。我目前的规则只是捕获单行注释:
match: \/\*(\w|\s|\W|\n|\r\n)*\*\/
我知道Sublime Text使用Oniguruma,但我不确定如何匹配多线。
答案 0 :(得分:3)
我遇到了与ST3相同的问题,但有一个.sublime-syntax
文件。不同之处在于,在我的语言中,块注释受!*
和*!
限制。内联评论以!
开头。
以下是我使用的解决方案:
contexts:
# The prototype context is prepended to all contexts but those setting
# meta_include_prototype: false.
prototype:
- include: comments
comments:
# Block comments begin with !* and ends with *!
- match: '!\*'
scope: punctuation.definition.comment.c
push:
- meta_scope: comment.block.c
- match: '\*!'
pop: true
# Inline comments begin with a '!' and finish at the end of the line.
- match: '![^\*]'
scope: punctuation.definition.comment.c
push:
# This is an anonymous context push for brevity.
- meta_scope: comment.line.double-slash.c
- match: $\n?
pop: true
答案 1 :(得分:2)
行。所以Joachim Pileborg的评论非常有帮助。我就是这样做的。
1-安装PackageDev包。
2-将相关包复制到临时目录并解压缩。对于C
,我这样做了:
cp /Applications/Sublime Text.app/Contents/MacOS/Packages/C++.sublime-package ~/tmp
cd ~/tmp
unzip C++.sublime-package
解压缩会创建许多*.tmLanguage
个文件。
3-在Sublime中打开C.tmLanguage
。
4-在命令选项板中,选择Build with: covert to ... YAML (Block Style)
,这将创建C.YAML-tmLanguage
。
5-然后打开YAML
文件并复制所需的正则表达式。
对于C风格的块,此规则有效:
- begin: /\*
captures:
'0':
name: punctuation.definition.comment.mn
end: \*/
name: comment.block.c