【问题标题】:Implement a custom editor in Visual Studio 2008 or 2010在 Visual Studio 2008 或 2010 中实现自定义编辑器
【发布时间】:2010-06-03 10:19:52
【问题描述】:

我正在尝试查找有关如何为 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 文本编辑器组件。

欢迎提出想法和建议!

【问题讨论】:

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


    【解决方案1】:

    有几个选项适用于 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 问题的回答。

    【讨论】:

    • 感谢您的信息。我有很多阅读要做! ……好吧?作为一种语言——附近有一个特里·普拉切特的粉丝......
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的链接。 T4 模板不是设计时方法吗?我的模板在运行时执行。似乎有一些关于在 .NET 4.0 中运行时使用 T4 的讨论,但这似乎是非常初步的。除非我弄错了?
    猜你喜欢
    • 2011-07-28
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2019-01-19
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多