Поддержка нового языка в Visual Studio + CodeSense
От: Albeoris  
Дата: 09.02.16 23:02
Оценка:
Доброго времени суток.

Есть такая штука, как LanguageService. Используется она для разбора, подсветки, навигации, рефакоринга и автодополнения синтаксического древа в файлах исходных текстов, о которых студия пока не знает.
https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.package.languageservice.aspx

Возникла необходимость реализовать. Беглый поиск не дал результатов — мануалов практически нет, а если речь заходит о CodeSense, то вообще нет. Что странно.

В моём случае, это файлы UnrealScript (*.uc). В своё время в помощи по UDK вообще рекомендовалось выбрать для них в качестве редактора Visual C++ и не мучиться. Вариант, конечно, но не лучший. Нашёл и студию, построенную на Isolated Shell:
http://uside.codeplex.com/SourceControl/latest

Солюшен очень грязный. Часть лексем определены в ресурсных файлах, часть парсится из внешних, парсеры и лексеры генерируются по простыне жутких регулярок. Немного подпилил, завёл, но расширять и поддерживать это...

Так вот, в случае изобретения собственного велосипеда, подскажите — куда копать?
Есть, к примеру, очень приятный с виду пакет https://irony.codeplex.com/
По части простенького разбора на ключевые слова, комментарии весьма удобен. И вроде бы даже какая-то объектная модель у него есть, но как её реализовывать, опять же не ясно.

Если у вас был опыт использования каких-нибудь фреймворков или реализации в лоб LanguageService с поддержкой CodeSense (обязательно), поделитесь, пожалуйста.
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
languageservice language visual studio extension
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.