как заставить порядок в расширении vscode CompletionItems - PullRequest
1 голос
/ 30 июня 2019

Я пишу собственное расширение VSCode, которое помогает мне добавлять относительные (из рабочей области) ссылки на файлы в моем проекте; У меня есть два варианта использования:

1) поиск файлов по ключевому слову (поиск в любом месте рабочей области) 2) список файлов по папке

Поскольку «список файлов по папкам» более конкретен и, следовательно, с большей вероятностью содержит желаемые, я хочу, чтобы они сначала отображались в предложениях CompletionItem.

Поэтому, когда я ищу «картинки», я получаю список CompletionItems

../../../../animals/pictures/cat.png (by keyword)
../../../../animals/pictures/dog.png (by keyword)
../../../pets/pictures/dog.png (by keyword)
./pictures/dog.png (by files in folder)

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

Можно ли как-то контролировать порядок списка результатов?

1 Ответ

1 голос
/ 01 июля 2019

Попробуйте установить свойство sortText для возвращаемых вами элементов:

 firstCompletionItem.sortText = 'a';
 secondCompletionItem.sortText = 'b';
 ...

sortText - произвольная строка, используемая для сортировки порядка, в котором отображаются завершения.

Сохранитьпомните, что sortText используется только в том случае, если элементы завершения совпадают одинаково.Например, если вы просто запустите intellisense для новой строки, все элементы завершения будут одинаково хорошо совпадать с пустой строкой, поэтому для их упорядочения будет использоваться sortText.Однако, если вы запустите intellisense после ввода буквы a, дополнения, начинающиеся с a, будут показаны перед теми, которые этого не делают, независимо от их sortText (после чего будут упорядочены все элементы завершения, начинающиеся с aиспользуя их sortText)

...