如何将基本html格式应用于仅在其中的sublime文本语法定义

时间:2015-03-14 10:38:56

标签: syntax-highlighting sublimetext sublimetext3 definition

好的,通过以下yaml定义,不应该 {blah}{!blah}之间的内容text.html.basic语法突出显示? {blah}标签本身会突出显示评论吗?不幸的是,这种情况并没有发生。 HTML突出显示位于文档的任何位置,{blah}不会突出显示注释。

# [PackageDev] target_format: plist, ext: tmLanguage
---
name: Test
scopeName: source.test
fileTypes: [test]
uuid: 3631aac6-ee25-4ec1-ab08-39f156235363

patterns:
  - name: comment.number-sign
  begin: \{blah\}
  end: \{\!blah\}
  patterns:
  - include: text.html.basic
  match: .
...

示例代码:

{blah}
<input type="text"/>
{!blah}              <----- these are not styled according to comment.number-sign
<input type="text"/> <----- this also has HTML highlighting and I don't want it to

1 个答案:

答案 0 :(得分:1)

这应该让你开始:

# [PackageDev] target_format: plist, ext: tmLanguage
name: Test
scopeName: source.test
fileTypes: [test]
uuid: 3631aac6-ee25-4ec1-ab08-39f156235363

patterns:
- name: html.test
  begin: (\{blah\})
  beginCaptures:
    '1': {name: comment.blah.test}
  end: (\{!blah\})
  endCaptures:
    '1': {name: comment.blah.test}
  patterns:
  - include: text.html.basic

name是整个选择器的基本范围。 beginCapturesendCapturescomment.blah.test范围分配给{blah}代码,而include规则将HTML突出显示分配给beginend之间的任何内容{blah}代码。

使用Neon Color Scheme(完全披露:我是它的维护者),示例文件如下所示:

foo.test

如您所见,{!blah}comment采用灰色斜体,{blah}范围。 {blah}标记之外的标记根本不会突出显示,而{{1}}标记中的标记会突出显示为HTML。

有关语法定义的更多信息,请查看非官方文档中的tutorialreference