我想强调
之间的所有事情!&
some explanation
&!
作为评论。
我知道评论与
相符- name: comment.line.exclamation-mark.fortran
match: (?i)\!.*$
在fortran.YAML-tmLanguage
中
但我不知道如何将其扩展到上述情况。
答案 0 :(得分:1)
由于注释是多行的,因此需要将正则表达式分成两个表达式,一个名为begin,另一个名为end。 这允许您解析多行。
我真的不使用YAML,但是来自C tmLanguage的代码应该让你开始(评论风格是/* COMMENT */
):
<dict>
<key>begin</key> <string>\s*/\*</string>
<key>captures</key>
<dict>
<key>0</key> <dict> <key>name</key>
<string>punctuation.definition.comment.c</string> </dict>
</dict>
<key>end</key> <string>\*/</string>
<key>name</key> <string>comment.block.c</string>
</dict>
因此,您可以将\s\!\&
用于开始标记,将\&\!
用于结束标记。
答案 1 :(得分:0)
我找到了以下工作。谢谢@LinuCC。
# order matter: this block comment syntax should be before the line comment syntax
- name: comment.block.fortran
begin: (?i)\!&
end: (?i)&\!
captures:
'0': {name: comment.line.exclamation-mark.fortran}
- name: comment.line.exclamation-mark.fortran
match: (?i)\!.*$
要进行评论切换工作,您还需要在另一个文件中
# [PackageDev] target_format: plist, ext: tmPreferences
---
name: Comments
uuid: 40e092f2-ee49-4cbd-8afb-4a5c4f581463
scope: source.fortran
settings:
shellVariables:
- name: TM_COMMENT_START
value: '! '
- name: TM_COMMENT_START_2
value: '!&'
- name: TM_COMMENT_END_2
value: '&!'