У меня есть расширение VS Code, которое предоставляет элементы завершения для C #. Я хотел бы сделать так, чтобы они отображались только в нижней части вариантов завершения, после того как все остальные параметры были исчерпаны (а не только лексикографически).
Насколько я знаю, API не предоставляет никаких способов сделать это (хотя я бы хотел оказаться ошибочным).
Таким образом, я решил взломать его одним префиксом vscode.CompletionsItem
'sortText
с ~
. Проблема в том, что по какой-то причине он работает только при сравнении моих CompletionItem
с другими CompletionItem
, которые явно указали значение поля sortText
.
let completion = {
label :"Hello World!",
sortText:~Hello World!"
}
// That works fine with this one for example:
let explicitCompletion= {
label :"World!",
sortText:"World!"
}
// But will appear before this one, despite having appended '~'
let implicitCompletion= {
label :"World!",
}
Все дополнения для расширения C # имеют неявный sortText
, поэтому он не работает.
Еще один способ сделать это, но несовершенный, это оставить insertText
и filterText
, но с префиксом label
.
let completion = {
label :"~Hello World!",
insertText:Hello World!",
filterText:Hello World!",
}
Проблема в том, что теперь есть раздражающий ~
, который отображается в начале завершения.
Итак, наконец, как я могу сделать так, чтобы мои завершения отображались после завершений по умолчанию в C #, без странного префикса, отображаемого в начале. (В этом примере завершение «Hello World!» Появится после «World!», без изменения завершения «World!». )