【问题标题】:Can HLint automatically do suggested edits?HLint 可以自动进行建议的编辑吗?
【发布时间】:2016-05-10 20:51:45
【问题描述】:

HLint 给出了如何改进源代码的建议。但是,鉴于建议的性质,我想知道是否可以自动应用这些建议。

是否可以自动应用hlint提出的建议?

【问题讨论】:

  • 您可能对HaRe projectthis repo 感兴趣
  • @willie:为什么这个问题需要代码?这只是关于编程相关工具的使用。

标签: haskell refactoring automated-refactoring hlint


【解决方案1】:

您必须使用--refactor 并在您的$PATH 中拥有refactor 可执行文件。请参阅hlint's README 了解更多信息:

自动应用提示

通过提供--refactor 标志 hlint 可以自动应用大多数 建议。而不是提示列表,hlint 将改为输出 标准输出上的重构文件。为了做到这一点,有必要 在你的路径上有refactor 可执行文件。 refactor 由提供 apply-refact 包,它使用 GHC API 来转换给定的源文件 要应用的重构列表。 Hlint 直接调用可执行文件 应用建议。

请注意,hlint 不会递归地应用转换,因此可能需要额外的 --refactor。话虽如此,请确保在应用 hlint --refactor 之前提交/保存并在之后测试您的代码,因为更改可能会破坏您的代码,特别是如果您使用 Rank2Types 或 seq

【讨论】:

    【解决方案2】:

    为了补充 Zeta 的回答,我使用了一些额外的标志来执行重构:

    hlint  --refactor --refactor-options="--inplace" path/to/your/File.hs
    

    有时您只想应用某种提示,这可以通过传递-o 标志来完成,例如:

    hlint  -o="Use fewer imports" --refactor --refactor-options="--inplace" 
    

    据我所知,建议的重构需要在每个文件的基础上进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多