Как написать расширение Visual Studio для языка шаблонов или разметки, поддерживающего встроенные фрагменты кода

Можно ли написать расширение для Visual Studio 2010, которое обеспечивает подсветку синтаксиса, intellisense, outlining и т.д. для настраиваемого шаблона или языка разметки, поддерживающего встроенные фрагменты кода, аналогично инструменту для Razor в ASP.NET MVC 3? Это можно сделать без использования частных API, без доступа к внутренней документации Microsoft и, самое главное, без необходимости переопределять подсветку синтаксиса, intellisense и т.д. Для встроенного языка программирования (например, С# или VB)

Документация SDK кажется, предлагает, что редактор Visual Studio поддерживает встроенные языки через проекционных буферов, но на самом деле он не дает никаких подробностей или примеров. Некоторые из "интерфейсных интерфейсных интерфейсов, используемых для редактора и языковых служб" в Microsoft.VisualStudio.TextManager.Interop также кажутся релевантными, например. IVsTextBufferCoordinator, но в документации не говорится о том, как все эти части подходят друг к другу.

При условии, что проекционные буферы действительно делают то, что я надеюсь, где я могу подключиться к редактору, чтобы заменить обычный текстовый буфер на буфер проектирования?

Может ли кто-нибудь получить дополнительную информацию о API, относящихся к поддержке встроенных языков, или может указать мне в правильном направлении?

Ответы

Ответ 1

В качестве примера вы можете посмотреть https://github.com/SparkViewEngine/SparkSense. Он был создан для двигателя искрового зрения, обеспечивающего intellisense для VS 2010.

"SparkSense - это плагин для Visual Studio 2010, который позволяет использовать различные функции поддержки и производительности при использовании Spark в качестве механизма просмотра для различных MVC-фреймворков, включая ASP.NET MVC"