2010-06-02 91 views
4

我正在尝试查找关于如何为VS2008或VS2010创建自定义编辑器插件的文档。在Visual Studio 2008或2010中实现自定义编辑器

我想编辑的文件语法来自Stefan Sarstedt的名为TemplateMaschine的工具。

的模板语法的一个例子:

<%@ Assembly Name="System.Xml" %> 
<%@ Import NameSpace="System.Xml" %> 
<%@ Import NameSpace="System.Collections" %> 
<%@ Argument Name="className" Type="string" %> 
<%@ Argument Name="attributes" Type="ArrayList" %> 

public class <%=className%> 
{ 
<% foreach(string attr in attributes) { %> 
public string <%=attr%>; 
<% } %> 
} 

的对我来说最重要的编辑器功能将实时语法检查和代码完成。如果我们能够获得这些功能,它将为我们节省数万人的工时。

未能将自定义编辑器合并到Studio中,也许有一些开源文本编辑器项目可能很容易扩展到我的目的?我在Eclipse上看了一些,但我会认为代码完成不会是一个选项(另外,我的Java臭味)。另一种可能是扩展SharpDevelop文本编辑器组件。

想法和建议欢迎!

回答

5

在VS2008和VS2010中有几个选项可用。

有管理的Babel,这是获得这些功能自动给予语法(我相信默认使用flex /野牛)的方法。您可以read about it on MSDN

有托管包框架(MPF),它有一个managed language service (MLS)。如果你还没有语法,这可能是最简单的路线。

这些都使用提供语言服务的通用解决方案,即described here

如果您不关心VS2008的定位,那么您可以直接转到VS2010中的新编辑器扩展性API。您可以查看Ook! language sample,并阅读我对general editor extensibility in VS2010问题的回答。

+0

感谢您的信息。我有很多阅读要做! ...和Ook?作为一种语言 - 附近有Terry Pratchett球迷...... – 2010-06-03 06:54:57

2

如果您想创建自己的DSL,请看Visual Studio Visualization and Modeling SDK

如果使用TemplateMaschine并非完全必要,请查看t4模板。它们内置于Visual Studio中,工具(如Clarius Visual T4)已经可用。

+0

感谢您的链接。 T4模板不是一种设计时间方法吗?我的模板在运行时执行。在.NET 4.0中,似乎有一些关于在运行时使用T4的讨论,但似乎非常初步。除非我错了? – 2010-06-02 22:13:04

相关问题