我目前正在为自己的模板引擎开发语法高亮插件。文件中的内容基于 Sublime Text 中常见的标准 HTML 语法高亮显示。
实现这一点绝不是问题:
...
contexts:
main:
- include: 'scope:text.html.basic'
...
正如您可以清楚地看到的,语法突出显示是使用(合理)新的.sublime-syntax
YAML编写的。突出显示我想要突出显示的代码中的部分,以及使用其他编程语言突出显示某些部分也不是问题。
我似乎无法弄清楚,但是,如何使HTML标记自动完成'语法设置为常规HTML时的方式。
例如,如果输入以下内容:
<html>
然后输入:
</
它将自动解析为结束</html>
标记(授予之间没有其他标记)。
这会进入另一个档案吗?也许是某种&#34;插件定义文件&#34;?
任何正确方向的指针都将受到高度赞赏。从我迄今为止所做的研究来看,我似乎无法找到关于特定主题的任何内容。
答案 0 :(得分:1)
执行此操作的命令是close_tag
,并使用以下键绑定触发:
// HTML, XML close tag
{ "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
[
{ "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
{ "key": "setting.auto_close_tags" }
]
}
此处列出的第一个上下文要求文件的语法为text.hml
或text.xml
,但不在字符串或注释内。
当您include
作为上述范围时,适用于匹配文本的范围取自您包含的范围,但顶级范围是您在语法定义中定义的范围。
因此,如果您使用Tools > Developer > Show Scope Names
命令检查范围,您可能会发现顶级范围不是text.html
,而是其他内容(上面的语法定义不是&# 39;不要说那可能是什么。)
如果您使用修改后的范围复制自己包中的自定义绑定,它应该执行您想要的操作。