为任意scalafmt设置保留现有代码

为任意scalafmt设置保留现有代码,scala,scalafmt,Scala,Scalafmt,我试图温和地将scalafmt引入到一个大型的现有代码库中,我希望它几乎不做任何更改,除了少数几个整个团队都能同意的无争议设置 使用一些设置,如maxColumn,我可以将80的默认值覆盖为5000等荒谬的设置,以不进行任何更改。但对于其他设置,我必须做出修改现有代码的选择,如使用continuationIndent.callSite。该设置需要一个数字,该数字将在代码库的第一次运行时积极引入更改 在scalafmt配置中,除了一些特定的设置之外,我可以做些什么来保留我的所有代码吗 编辑:我还将

我试图温和地将scalafmt引入到一个大型的现有代码库中,我希望它几乎不做任何更改,除了少数几个整个团队都能同意的无争议设置

使用一些设置,如
maxColumn
,我可以将
80
的默认值覆盖为
5000
等荒谬的设置,以不进行任何更改。但对于其他设置,我必须做出修改现有代码的选择,如使用
continuationIndent.callSite
。该设置需要一个数字,该数字将在代码库的第一次运行时积极引入更改

在scalafmt配置中,除了一些特定的设置之外,我可以做些什么来保留我的所有代码吗

编辑:我还将接受解决同一问题的其他工具的建议。

考虑:

配置在此项目中应格式化的源文件

# manually include files to format. 
project.includeFilters = [
 regex1   
 regex2 
] 
例如,假设我们的项目结构包含
foo
bar
baz
等包,如下所示

someProject/src/main/scala/com/example/foo/*.scala
someProject/src/main/scala/com/example/bar/*.scala
someProject/src/main/scala/com/example/baz/qux/*.scala
...
然后是下面的
.scalafmt.conf

project.includeFilters = [
  "foo/.*"
]
continuationIndent.callSite = 2
...
将仅格式化
foo
包中的文件。现在,我们可以继续逐步将格式化引入到代码库包中

project.includeFilters = [
  "foo/.*"
  "bar/.*"
]
continuationIndent.callSite = 2
...
甚至是一个个文件

project.includeFilters = [
  "foo/FooA\.scala"
  "foo/FooB\.scala"
]
continuationIndent.callSite = 2
...

这很酷,我不知道你能做到。但我真的在寻找一种方法,在所有文件上强制执行一个或两个scalafmt设置。