【发布时间】:2014-05-11 18:25:16
【问题描述】:
比如说我有一个 yaml 文件
immutable_class: Foo
A: int
B: string
根据想象的 MSBUILD 规则将生成
partial class Foo {
public int A { set ; private get; }
public string B { set; private get; }
private Foo(){}
public static Foo Default = new Foo();
public Foo SetA(int value){
var r = (Foo) this.Clone();
r.A = value;
return r;
}
public Foo SetB(string value){
var r = (Foo) this.Clone();
r.B = value;
return r;
}
}
现在在我的源代码中的某个地方我将拥有
Foo foo = Foo.Default;
foo = foo
.SetA(1)
.SetB("Hello");
var tmp = foo.B;
我现在告诉 resharper 我希望重构重命名 B 并且插件将识别此属性的来源是生成类的 DSL,并相应地重构该 DSL。假设一旦我被正确的信息触发,我就有工具可以自己实际重构 DSL。
Resharper API 是否足够开放,可以做这种事情?
【问题讨论】:
-
好问题!让我试着想一个不涉及首先在 R# 中实现 YAML 支持的答案:)
标签: c# plugins refactoring resharper dsl