C# 用于ReSharper的CodeRush样式类型化模板

C# 用于ReSharper的CodeRush样式类型化模板,c#,resharper,coderush,C#,Resharper,Coderush,我是CodeRush的超级粉丝,他们的模板哲学。在我目前的工作中,我们将进行大量的配对工作,大家都倾向于使用ReSharper(v6),这几乎让我不得不使用它 我不想在这里挑起一场CodeRush/Resharper战争。关于Resharper有很多值得喜欢的地方,但有一点我在Resharper很难克服 ReSharper的Live模板机制wile good没有像CodeRush那样的内置输入概念(至少我不这么认为)。下面是一个简单的例子。要生成以下代码: public String MyStr

我是CodeRush的超级粉丝,他们的模板哲学。在我目前的工作中,我们将进行大量的配对工作,大家都倾向于使用ReSharper(v6),这几乎让我不得不使用它

我不想在这里挑起一场CodeRush/Resharper战争。关于Resharper有很多值得喜欢的地方,但有一点我在Resharper很难克服

ReSharper的Live模板机制wile good没有像CodeRush那样的内置输入概念(至少我不这么认为)。下面是一个简单的例子。要生成以下代码:

public String MyStringProperty { get; set; }
在CodeRush中,我可以键入“as”('a'表示自动属性,'s'表示字符串),然后简单地更改属性的名称

在ReSharper中,我需要键入“prop”(用于属性),然后设置类型和名称

在ReSharper的Live模板中,似乎没有类似的类型感知或类型快捷方式概念。因此,似乎没有任何类似于大量的两个和三个字符模板的东西可以让您预先输入变量、属性、方法等


所以,在所有这些背景之后,最后是问题。有没有办法在ReSharper中复制“类型化模板”的概念,而不为每个模板/类型组合创建新的活动模板?

我认为不可能让ReSharper拥有一个以一个字母名称后跟一个字母类型的模板。您必须为每种类型创建一个新模板,例如“as”,并将其定义为:

public string $NAME$ { get; set; }
您可能希望更改它可用的位置,即允许类型成员声明的C#文件


您可以将'prop'模板重命名为'a',然后键入'a',TAB',s',TAB,TAB,'property_name',TAB当前,ReSharper不支持您所指的使用模式。然而,我可以想出两种方法来实现这一点

  • 一个选项是为所有常见用例生成活动模板。我使用,但请注意,它还没有用R#6.1进行测试
  • 另一种选择是简单地编写一个插件来实现这一点。ReSharper SDK有一个HtmlZen示例,它做了一些非常类似的事情,即将DSL字符串扩展为一段代码。你可以很容易地为记忆扩展做同样的事情
请注意,无论您选择哪个选项,您都无法通过按空格键来扩展模板-这在ReSharper中是不可能的

如果您还有其他问题,请告诉我


德米特里

是的,这几乎就是我发现的。谢谢,德米特里,谢谢你的信息。我看看我能做什么。用空间扩展模板对我来说并不是什么问题。这实际上只是用来描述这个过程。选项卡或任何其他扩展机制都可以。我刚刚尝试将上述文件导入到6.1中,它似乎运行良好。