【问题标题】:Resharper wont refactor similar block when extracting methodResharper 在提取方法时不会重构类似的块
【发布时间】:2014-04-28 08:38:25
【问题描述】:

在某些单元测试中,我想重构一些重复的代码块。

所以我选择了一段代码,例如下面的代码:

var timer = Substitute.For<ITimer>();
var alertSender = Substitute.For<IAlertSender>();
var alert = new Alert(NotificationType.Clear, new AlertConfiguration("test", 1, new List<string>()), timer, alertSender);

不幸的是,当 resharper 确实为我创建了该方法时,它没有检测到相同的代码块并为我重构它。 有什么办法可以解决这个问题吗?

【问题讨论】:

  • 这是完全相同的代码块。
  • 我认为 ReSharper 没那么聪明。您必须了解每个工具都有其自身的局限性。
  • @LexLi 这只是在 AST 上进行模式匹配的问题。一些 smalltalk 工具有这个功能很长时间了。
  • 功能的难易程度并不是产品经理用来说明何时应将其包含在产品中的唯一衡量标准。显然,ReSharper 有许多其他功能需要实现,而不是将其留给外部插件。

标签: c# visual-studio-2012 resharper


【解决方案1】:

ReSharper 不这样做,但有一个问题悬而未决,请随时为它投票:http://youtrack.jetbrains.com/issue/RSRP-274811

【讨论】:

    【解决方案2】:

    正如@citizenmatt 所提到的,ReSharper 并没有开箱即用地做到这一点。但是,有一个名为 Agent Ralph 的 ReSharper 插件,据说可以处理重构重复的代码块!

    如果您有 ReSharper 8,则可以从 ReSharper Gallery 安装它(不过,该插件似乎尚未更新为使用 v8.2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      相关资源
      最近更新 更多