我显然无法让自动完成功能在我的 XML 文件中发挥作用。这是xml.sublime-completions
我添加到 User 文件夹中的文件:
{
"scope": "text.xml",
"completions":
[
{
"trigger": "t",
"contents": "<Text id="$1"><![CDATA[$0]]></Text>"
}
]
}
现在在 XML 文件中输入 t-<tab> 只会产生 <t></t>:
<?xml version="1.0" encoding="UTF-8"?>
<t></t>
我该如何开始调试这个?
答案1
结果比我预想的要困难一些。
我安装了 Emmet 包。Emmet 有自己的自动完成支持,但我没能让它输出
<![CDATA[...]]>
我需要的序列。因此,我通过插入以下内容禁用了 Emmet 的 xml 范围自动完成功能
Emmet.sublime-settings
:{ "disable_tab_abbreviations_for_scopes": "text.xml" }
Sublime 代码片段本身使用 <![CDATA[...]]> 语法作为替换字符串。哎呀。<![CDATA[...]] 标签不能嵌套. 它也不允许在“内容”标签内有多个 CDATA。
现在,所需的自动完成功能可以在旧的 xml.sublime-completions 中很好地运行:
{ "scope": "text.xml", "completions": [ { "trigger": "t", "contents": "<Text id="$1"><![CDATA[$0]]>/Text>" } ] }