Как предоставить элемент завершения с низким приоритетом в расширении VS CODE? - PullRequest
0 голосов
/ 06 января 2019

У меня есть расширение 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!». )

...