Есть ли возможность добавить равенства и круглые скобки при использовании автозаполнения в документе XML?

Я работал в редакторе XML, и я также работаю над добавлением поддержки автозаполнения XML в редакторе Ace.

Я пытаюсь найти, есть ли возможность автоматически добавить знак равенства и круглые скобки, а затем установить курсор внутри круглых скобок при использовании предложения автозаполнения. Я видел эту функцию в другом редакторе XML.

Например, если я набираю следующее слово "lab":

<s:Button lab|   />

и затем нажмите CTRL+ пробел, это вызовет предложения. Затем, если я выберу "метка" из списка предложений, мне предложат слово "метка", после него ставят знак равенства и круглые скобки, а внутри помещают курсор, как показано ниже:

<s:Button label="|"   />

Есть ли способ сделать это?

1 ответ

Решение

Я должен установить type свойство "фрагмент", а затем установить snippet Свойство, к которому я хочу автозаполнение:

var autoCompleteObject = new Object();
autoCompleteObject.value = "Greetings";
autoCompleteObject.type = "snippet";
autoCompleteObject.snippet = "Hello ${1:World}. Welcome to ${2:Earth}";

Когда ваш редактор использует объект, показанный выше, тогда, когда пользователь использует ваш редактор и выбирает "Привет" в меню автозаполнения, в документ вставляется текст "Hello World. Welcome to Earth".

Слово "Мир" выбрано, и пользователь может изменить его или оставить как есть. Когда пользователь снова нажимает на вкладку, выбирается слово "Земля", и шклхее имеет ту же опцию, что и раньше. Вы можете использовать пустой объект, чтобы просто поместить курсор "${3}".

Нумерация - это порядок выбора токенов.

Другие вопросы по тегам