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

Dav*_*ery 4 text-editor visual-studio-2010 visual-studio-2008

我正在尝试找到有关如何为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%>;
<% } %>
}
Run Code Online (Sandbox Code Playgroud)

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

如果没有将自定义编辑器合并到Studio中,可能有一些开源文本编辑器项目可能很容易扩展到我的目的?我看了一下Eclipse,但我认为代码完成不会是一个选项(同样,我的Java很糟糕).另一种可能是扩展SharpDevelop文本编辑器组件.

欢迎提出意见和建议!

Noa*_*rds 5

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

有Managed Babel,这是一种自动获取这些功能的方法(我相信默认使用flex/bison).您可以在MSDN上阅读它.

有托管包框架(MPF),它有一个托管语言服务(MLS).如果你还没有语法,这可能是最简单的路线.

这些都使用提供语言服务的通用解决方案,这里描述.

如果您不关心VS2008的定位,可以直接转到VS2010中的新编辑器扩展性API.你可以看看Ook!语言示例,并阅读我对VS2010中关于通用编辑器可扩展性的问题的回答.