Как написать расширение Visual Studio для шаблона или языка разметки, которое поддерживает фрагменты встроенного кода - PullRequest
14 голосов
/ 01 мая 2011

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 01 мая 2011

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

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

0 голосов
/ 01 мая 2011

вы можете написать свой собственный редактор расширения, см. Эту статью: http://www.devx.com/VS_2010/Article/45058

И чтобы понять, как это работает: http://msdn.microsoft.com/en-us/library/dd885240(v=VS.100).aspx

Проведите исследование по теме "Структура управляемой расширяемости (MEF)"

Вы можете скачать образец для языка Ook здесь

...