1

Я очевидно не могу заставить автозаполнение работать в моих файлах XML. Вот мой xml.sublime-completions , который я добавил в папку User:

{
  "scope": "text.xml",
  "completions":
  [
    {
      "trigger": "t",
      "contents": "<Text id="$1"><![CDATA[$0]]></Text>"
    }
  ]
}

Теперь ввод t- <tab> в XML-файле приводит только к <t> </t>:

<?xml version="1.0" encoding="UTF-8"?>
<t></t>

Как мне даже начать отлаживать это?

1 ответ1

1

Оказалось немного сложнее, чем я ожидал.

  1. У меня был установлен пакет Emmet. У Emmet есть собственная поддержка автозаполнения, но мне не удалось заставить его выплюнуть <![CDATA[...]]> последовательность, которая мне нужна.

  2. Поэтому я отключил автозаполнение Emmet для xml scope, вставив в Emmet.sublime-settings:

    { "disable_tab_abbreviations_for_scopes": "text.xml" }

  3. Возвышенные фрагменты сами используют <! [CDATA [...]]> синтаксис для замещающих строк. Doh. <! [Теги CDATA [...]] не могут быть вложенными. Он также не позволяет использовать несколько CDATA внутри тегов "содержимого".

  4. Теперь желаемое автозаполнение хорошо работает в старых добрых xml.sublime-дополнениях:

    { "scope": "text.xml", "completions": [ { "trigger": "t", "contents": "<Text id="$1"><![CDATA[$0]]>/Text>" } ] }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .