Условные фрагменты кода VS

Я хочу, чтобы некоторые фрагменты были условно перечислены в VS Code IntelliSense для определенного языка. Я рассматриваю возможность создания расширения, перехвата списка CompletionItems и удаления любых фрагментов, которые не удовлетворяют моим условиям на основе идентификатора языка и настроек/конфигурации, которые я внесу с расширением. Я ищу самое простое решение для этого, но если мне нужен языковой сервер, пусть будет так. Если бы я мог динамически загружать файл фрагментов для определенного идентификатора языка, это было бы еще лучше. Мне просто нужна отправная точка от кого-то более знакомого с API. Я даже не нашел, как получить CompletionList, чтобы начать перехват — я искал документ API, но не нашел ничего, кроме определения его объекта.


person mtbrown    schedule 20.07.2017    source источник


Ответы (1)


Начиная с VSCode 1.14, у вас не может быть условных фрагментов пользователя, но расширение может добавлять фрагменты условно . Попробуйте создать CompletionItemProvider, который возвращает элементы завершения с их kind установленным на CompletionItemKind.Snippet.

JsDocCompletionProvider в Кодовая база VSCode является одним из примеров этого шаблона. Он возвращает фрагменты jsdoc только тогда, когда область вокруг курсора соответствует регулярному выражению.

person Matt Bierner    schedule 20.07.2017