Как поместить курсор в специальное положение, когда завершение происходит? - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь создать завершение для JavaScript. У меня есть следующий пример для завершения:

var jsonob = {
    label: String(counter.label),
    kind: counter.kind, 
    insertText: counter.insertText,     
};
completionList.push(jsonob);

, а counter.insertText имеет "function ${1:functionName} (){\n\t\n}" String

, когда завершение происходит, то, что он показывает, составляет

function ${1:functionName} (){

}

но следует выделить слово functionName. Как решить эту проблему?

1 Ответ

0 голосов
/ 13 октября 2019

Я предполагаю, что ваш counter.insertText является простым string. CompletionItem.insertText определяется следующим образом:

insertText?: string | SnippetString

Строка или фрагмент, который должен быть вставлен в документ при выборе этого завершения. Когда falsy используется метка.

Поэтому, если вы хотите, чтобы ваш insertText рассматривался как фрагмент, вам нужно будет обернуть его в SnippetString экземпляр.

insertText: new vscode.SnippetString(counter.insertText)
...