如何为支持嵌入代码片段的模板或标记语言编写 Visual Studio 扩展

发布于 2024-11-04 13:19:06 字数 1031 浏览 3 评论 0原文

是否可以为 Visual Studio 2010 编写一个扩展,为支持嵌入代码片段的自定义模板或标记语言提供语法突出显示、智能感知、大纲等,类似于 ASP .NET 中的 Razor 工具MVC 3?是否可以在不使用私有 API、无需访问 Microsoft 内部文档以及最重要无需为嵌入式编程语言重新实现语法突出显示、智能感知等的情况下完成此任务(即 C# 或 VB)?

SDK 文档似乎建议 Visual Studio 编辑器支持嵌入式通过投影的语言缓冲区,但它并没有真正提供任何细节或示例。 Microsoft.VisualStudio.TextManager.Interop 似乎也相关,例如 IVsTextBufferCoordinator,但文档没有说关于所有这些部分如何组合在一起的更多内容。

假设投影缓冲区确实达到了我所希望的效果,那么我可以在哪里连接到编辑器以用投影缓冲区替换普通文本缓冲区?

也许有人有更多关于支持嵌入式语言的 API 的信息,或者可以为我指明正确的方向?

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 more information on the APIs relevant for supporting embedded languages or could point me into the right direction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

所有深爱都是秘密 2024-11-11 13:19:06

您应该以 https://github.com/SparkViewEngine/SparkSense 为例。它是为 Spark 视图引擎构建的,旨在为 VS 2010 提供智能感知。

“SparkSense 是 Visual Studio 2010 的一个插件,当使用 Spark 作为各种 MVC 框架(包括 ASP.NET MVC)的视图引擎时,它可以实现各种工具支持和生产力功能”

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"

不回头走下去 2024-11-11 13:19:06

您可以编写自己的编辑器扩展,请参阅这篇文章: http://www.devx.com/VS_2010 /Article/45058

并了解其工作原理:http://msdn.microsoft.com/en-us/ library/dd885240(v=VS.100).aspx

研究“托管扩展性框架 (MEF)”

您可以下载 Ook 语言的示例 此处

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文