简易模式:包含
如果您的语言真的只是HTML,则可以设置一个简单的程序包来处理此问题。
创建一个名为langugage-ejs
的程序包,并在grammars/ejs.cson
中添加HTML,使其具有您关心的模式:
'fileTypes': [
'ejs'
]
'name': 'Embedded JavaScript'
'patterns': [
{
'include': 'source.html'
}
]
'scopeName': 'source.ejs'
language-ipynb当然可以通过扩展JSON来实现。
那我的模板标签呢?
但实际上,在HTML之上有模板标记,您希望使编辑器能够识别它们。 我能找到的最佳示例是erb(嵌入式Ruby模板)。 它来自HTML,但也添加了其他标签,如以下代码片段所示:
...
'patterns': [
{
'begin': '<%+#'
'captures':
'0':
'name': 'punctuation.definition.comment.erb'
'end': '%>'
'name': 'comment.block.erb'
}
{
'begin': '<%+(?!>)[-=]?'
'captures':
'0':
'name': 'punctuation.section.embedded.ruby'
'end': '-?%>'
'name': 'source.ruby.rails.embedded.html'
'patterns': [
{
'captures':
'1':
'name': 'punctuation.definition.comment.ruby'
'match': '(#).*?(?=-?%>)'
'name': 'comment.line.number-sign.ruby'
}
{
'include': 'source.ruby.rails'
}
]
}
{
'include': 'text.html.basic'
}
]
...