如何在项目中自动运行scalafmt?

mkU*_*tra 1 sbt sbt-plugin

我在项目中使用scalafmt插件,也对Intellj使用scalafmt插件以格式化我的Scala代码。通常我使用热键或运行sbt scalafmt格式化。

sbt.version=1.0.3
addSbtPlugin("com.geirsson" % "sbt-scalafmt" % "1.3.0")
Run Code Online (Sandbox Code Playgroud)

问题: 关于如何在编译时自动使用scalafmt格式化代码的任何建议?

lau*_*lic 5

更新:只需更新插件版本并使用

scalafmtOnCompile := true
Run Code Online (Sandbox Code Playgroud)

下面的答案已经过时,建议使用替代插件,但是现在这是另一回事了,官方的是最新的,并且开箱即用地支持此功能。

从所使用插件的scalafmt 安装说明中:

sbt插件不提供有关编译设置的格式。该要点显示了一个DIY插件,可用于重新格式化。YMMV。

为什么sbt插件中未包含该要点?参见#597

我建议您改为尝试neo-sbt-scalafmt。通常,它更具可配置性和更好的维护性(其他插件已废弃,请参见上面链接的问题)。使用此插件,您可以使用简单的格式打开编译格式

scalafmtOnCompile := true
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请参阅文档

  • 这个答案已经过时了。官方scalafmt插件现在可以在编译时使用(https://scalameta.org/scalafmt/docs/installation.html#setting-keys)格式代码。 (2认同)