Языковой сервер с семантической подсветкой в ​​VSCode

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

У меня уже есть языковой сервис в VS Community, где я написал свой классификатор. Можно ли написать собственный классификатор в VSCode, или единственный способ раскрасить документ — это добавить TextMate файл спецификации языка в VScode пакет?


comment
Я бы рекомендовал вам создать языковой сервер, который использует github.com/Microsoft/language-server- протокол , так что вы сможете подключить его ко всем клиентам, поддерживающим этот протокол (сейчас VSCode, предстоящие Eclipse Che и Eclipse IDE). Однако в этом протоколе не хватает подсветки синтаксиса. ATM, наиболее портативный подход по-прежнему кажется текстовым файлом.   -  person Mickael    schedule 02.09.2016


Ответы (1)


Семантическая окраска не поддерживается LSP начиная с VS Code 1.29.

В настоящее время есть две основные проблемы, связанные с отслеживанием этой функции:

person Matt Bierner    schedule 02.11.2018
comment
Обе эти проблемы по состоянию на 2021 год решены. LSP версии 3.16 (выпущена в декабре 2020 г.) теперь поддерживает семантическое выделение, а в марте 2020 г. API VSCode был объединен с github.com/microsoft/vscode/issues/86415 - person heckj; 17.03.2021