跳至内容

自动完成文件

另请参阅

自动完成 : 介绍不同类型的自动完成

自动完成并不局限于自动完成文件,因为其他来源也会为自动完成列表提供贡献(见上文)。但是,Sublime Text 提供给您最明确的方式来提供自动完成是通过 .sublime-completions 文件。

本主题仅讨论 .sublime-completions 文件的格式。

文件格式

自动完成是具有 .sublime-completions 扩展名的 JSON 文件。自动完成文件中的条目可以包含类似片段的字符串或纯文本。

示例

以下是一个示例(包含 HTML 自动完成)

json
{
   "scope": "text.html - source - meta.tag, punctuation.definition.tag.begin",

   "completions":
   [
      { "trigger": "a", "contents": "<a href=\"$1\">$0</a>" },
      { "trigger": "abbr\t<abbr>", "contents": "<abbr>$0</abbr>" },
      { "trigger": "acronym", "contents": "<acronym>$0</acronym>" }
   ]
}

scope : 确定何时使用此自动完成列表填充自动完成列表。

有关更多信息,请参阅 范围

completions : 自动完成 数组。

自动完成类型

纯字符串

纯字符串等效于条目,其中 triggercontents 相同

json
"foo"
// is equivalent to:
{ "trigger": "foo", "contents": "foo" }

基于触发器的自动完成

json
{ "trigger": "foo", "contents": "foobar" },
{ "trigger": "foo\ttest", "contents": "foobar" }

trigger : 在自动完成列表中显示的文本,当选择时将导致插入 contents

您可以使用 \t 制表符字符为前面的触发器添加一个注释。注释将右对齐显示,略微灰显,并且不会影响触发器本身。

contents : 要插入到缓冲区中的文本。支持与片段相同的字符串插值功能。

请参阅 片段功能

提示

如果您想要一个字面上的 $,您必须对其进行转义,如下所示:\\$(由于我们在 JSON 字符串中,因此需要双反斜杠)。