我正在尝试找到有关如何为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文本编辑器组件。
欢迎提出意见和建议!
答案 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)已经可用。