Is it possible to write an extension for Visual Studio 2010 that provides syntax highlighting, intellisense, outlining, etc for a custom template or markup language supporting embedded code snippets, similar to the tooling for Razor in ASP .NET MVC 3? Can this be done without using private APIs, without access to Microsoft-internal documentation and, most importantly, without having to reimplement syntax highlighting, intellisense, etc. for the embedded programming language (i.e. C# or VB)?
The SDK documentation seems to suggest that the Visual Studio editor supports embedded languages via projection buffers, but it doesn't really give any details or examples. Some of the "legacy interop interfaces used for the editor and language services" in Microsoft.VisualStudio.TextManager.Interop also seem to be relevant, e.g. IVsTextBufferCoordinator, but the documentation doesn't say much about how all these pieces fit together.
Provided that projection buffers actually do what I hope, where can I hook into the editor to replace a normal text buffer with a projection buffer?
Does maybe anyone have mor开发者_开发技巧e information on the APIs relevant for supporting embedded languages or could point me into the right direction?
You should take a look at https://github.com/SparkViewEngine/SparkSense as an example. It was built for the spark view engine to provide intellisense for VS 2010.
"SparkSense is a plugin for Visual Studio 2010 that enables various tooling support and productivity features when using Spark as a View Engine for various MVC frameworks including ASP.NET MVC"
you can write your own editor extension, see this article : http://www.devx.com/VS_2010/Article/45058
And to understand how it works : http://msdn.microsoft.com/en-us/library/dd885240(v=VS.100).aspx
Do research about "Managed Extensibility Framework (MEF) "
You can download an exemple for the Ook langage here
精彩评论