是否有(相对)简单的方法为Visual Studio创建自定义C#“块”编辑器?

时间:2013-10-21 19:21:23

标签: c# visual-studio-2012 rspec visual-studio-extensions

我正在尝试使用rspec行的.NET测试框架,并希望在Visual Studio中实现自定义编辑器。

对于没有经验的人来说,rspec是ruby的测试框架,测试(或规格)看起来像这样:

describe Bowling, "#score" do
  it "returns 0 for all gutter game" do
    bowling = Bowling.new
    bowling.hit(0)
    bowling.score.should eq(0)
  end
end

在ruby中,可以将rspec测试编写为块嵌套的匿名函数,而不需要任何封闭的方法或类 - 这由运行时幕后的框架处理。

我想在Visual Studio 2012和/或2013中沿着这些方向做一些事情。完整的C#测试文件可能如下所示:

using System;
using BowlingApp;
using Specs;

@spec DefaultSpec 

Describe(typeof(Bowling), "#score", () => {
    It("returns 0 for all gutter game", () => {
        var bowling = new Bowling();
        bowling.Hit(0);
        Expect(bowling.Score).ToEqual(0);
    });
});

...其中@spec语句指定将在幕后生成的“封闭”类型的基类(在设计时,在本例中)。基类还将提供上述示例中使用的DescribeItExpect方法。

为了使这个测试框架可以使用,我需要一个自定义的VS编辑器,用于上面的格式,带有语法高亮和智能感知。

是否可以“重新利用”VS中现有的C#编辑器来执行此操作,还是必须从头开始执行所有操作?如果是这样,是否有任何开源工具或框架可以帮助我创建这样的编辑器?

1 个答案:

答案 0 :(得分:0)

有一种简单的方法吗?不可以。你可以用投影缓冲区做这样的技巧,但实际上很难做对。