使用vs代码,如何使scala格式起作用并格式化我的代码?

时间:2020-04-06 12:42:45

标签: scala visual-studio-code sbt scalafmt scala-metals

我的多项目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。

1 个答案:

答案 0 :(得分:2)

Scalafmt似乎可以在我的机器上使用开箱即用的金属在VSC中工作

金属自动使用Scalafmt响应格式化请求 从编辑器中,根据在 .scalafmt.conf ...如果没有.scalafmt.conf,则收到 第一个格式请求Metals将为以下文件创建.scalafmt.conf文件 你。

在VSC中仅从Format Document执行Command Palette命令,它应根据.scalafmt.conf.进行格式化。如果您想对每个源更改进行连续格式化和编译,并且scalafmtOnCompile是不起作用,然后尝试在sbt中执行

~scalafmt;compile

根据文档,编译时的格式为discouraged

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