3

我正在尝试将 scalafmt 温和地引入现有的大型代码库,并且我希望它几乎不做任何更改,除了整个团队可以同意的少数无争议设置。

通过像我这样的一些设置,maxColumn我可以将默认值覆盖80为一些荒谬的东西,比如5000没有变化。但是对于其他设置,我必须做出选择来修改现有代码,例如continuationIndent.callSite. 该设置需要一个数字,该数字会在我们的代码库的第一次运行时积极引入更改。

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

编辑:我也会接受解决相同问题的其他工具的建议。

4

1 回答 1

2

考虑project.includeFilters

配置应在此项目中格式化哪些源文件。

# 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
...
于 2019-09-04T20:45:05.210 回答