在Visual Studio 2008或2010中实现自定义编辑器

时间:2010-06-02 21:25:10

标签: visual-studio-2008 visual-studio-2010 text-editor

我正在尝试找到有关如何为VS2008或VS2010创建自定义编辑器插件的文档。

我要编辑的文件语法来自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文本编辑器组件。

欢迎提出意见和建议!

2 个答案:

答案 0 :(得分:5)

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

有Managed Babel,这是通过语法自动获取这些功能的方法(我相信默认使用flex / bison)。你可以read about it on MSDN

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

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

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

答案 1 :(得分:2)

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

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