Как добавить семантическое выделение в языковую службу Visual Studio?

Я пишу языковую службу с MPF, и у меня уже работает базовая подсветка синтаксиса, но я хотел бы также добавить семантическую подсветку.

C# делает это, например, для имен типов. Цвет идентификатора отличается, когда он называет тип; даже одно и то же слово в одном и том же утверждении может быть выделено по-разному в зависимости от контекста.

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

Как я могу этого добиться? Есть ли пример исходного кода из другой языковой службы, который делает это?


person Jesse McGrew    schedule 03.08.2013    source источник
comment
Это может помочь: Есть ли языковая надстройка для Visual Studio 2012 / VS11?   -  person chue x    schedule 03.08.2013