gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:05:31 27 4
gpt4 key购买 nike

我正在尝试将 scalafmt 温和地引入到现有的大型代码库中,我希望它几乎不做任何更改,除了一些整个团队可以达成一致的无争议设置。

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

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

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

最佳答案

考虑 project.includeFilters :

Configure which source files should be formatted in this project.

# manually include files to format. 
project.includeFilters = [
regex1
regex2
]

例如,假设我们的项目结构有foobarbaz等包,像这样

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
...

关于scala - 为任意 scalafmt 设置保留现有代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57793985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com