如何仅在 sublime text 语法定义中应用基本 html 格式

How can I apply basic html formatting to a sublime text syntax definition only within

好的,根据下面的 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

这应该让你开始:

# [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 标签。

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

如您所见,{blah}{!blah} 为灰色斜体,即 comment 范围。 {blah} 标签外的标记根本不突出显示,而 {blah} 标签内的标记突出显示为 HTML.

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