5

我的多项目 sbt 存储库中有 scala 格式插件。

addSbtPlugin("org.scalameta"    % "sbt-scalafmt"        % "2.3.2")

所以在 sbt 控制台中,如果我运行 scalafmt 它工作正常

我的 build.sbt 有:

scalafmtOnCompile := true

如果我在 sbt 中进行 ~compile 或只是手动编译,它不会在编译期间格式化我的代码。

我的设置有什么问题?

此外,运行 scalafmt 可以,但它不会像我的 Dependencies.scala 文件那样格式化 /project 中的 .scala 文件。为什么忽略这些文件?

我也将 VS Code 与金属一起用作我的 IDE。

4

2 回答 2

3

Scalafmt似乎可以在 VSC 中使用 Metals 在我的机器上开箱即用

Metals 自动使用 Scalafmt 响应来自编辑器的格式化请求,根据 .scalafmt.conf...中定义的配置,如果没有.scalafmt.conf,Metals 在收到第一个格式请求时会为您创建 .scalafmt.conf 文件。

只需在 VSC 中执行Format Document命令Command Palette,它应该根据.scalafmt.conf.格式scalafmtOnCompile进行格式化

~scalafmt;compile

但是根据文档不鼓励编译格式

不鼓励使用此选项,因为它会弄乱编辑器中的撤消缓冲区并减慢编译速度。建议在编辑器中使用“保存时格式化”。

于 2020-04-06T13:07:20.183 回答
1

在 VS Code 中,如果你进入File -> Preferences - > Settings并输入editor.format,你会看到一堆选项。

启用所有这些,并且金属应该应用所有更改。

于 2021-08-15T02:47:01.053 回答