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