Spotless 可以格式化 <antlr | c |时间:2019-03-17 标签:c#|时间:2019-05-09 标签:c++ CSS |流量|图形语言|绝妙| html |爪哇 | javascript | json | jsx |科特林 |少 |许可证头 |降价|目标-c |协议缓冲区 |蟒蛇 |斯卡拉 | scss |壳 | sql|打字稿 |视图 | yaml |任何东西> 使用 <gradle |行家 | sbt |任何事情>。
您可能需要以下链接之一:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED 以下文件存在格式冲突: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ 运行 './gradlew SpotlessApply' 来修复这些违规行为。user@machine repo % ./gradlew SpotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn Spotless:check[错误] > 以下文件存在格式冲突:[错误] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[错误] -tt···if·(targets.length·==·0)·{[错误] +ttif·(targets.length·==·0)·{[错误] 运行“mvn Spotless:apply”来修复这些问题violations.user@machine repo % mvn Spotless:apply[INFO] 构建成功user@machine repo % mvn Spotless:check[INFO] 构建成功
理想情况下,代码格式化程序不仅可以查找格式错误,还可以修复这些错误。这样的格式化程序只是一个Function<String, String>
,它返回其可能未格式化的输入的格式化版本。
构建这样的函数很容易,但存在一些陷阱和大量集成工作(换行符、字符编码、幂等性、git 棘轮和构建系统集成)。 Spotless 为您解决了这些问题,因此您可以专注于一个简单的Function<String, String>
它可以与 Spotless 的武器库中的任何其他格式化程序组合并构建工具。
功能/FormatterStep | 梯度 | 行家 | sbt | (这里是您的构建工具) |
---|---|---|---|---|
自动幂等性保障 | ? | ? | ? | ⬜ |
编码保护配置错误 | ? | ? | ? | ⬜ |
切换spotless:off 和spotless:on | ? | ? | ⬜ | ⬜ |
来自origin/main 或其他 git ref 的棘轮 | ? | ? | ⬜ | ⬜ |
使用 git 定义行结尾 | ? | ? | ? | ⬜ |
快速增量格式和最新检查 | ? | ? | ⬜ | ⬜ |
使用 buildcache 快速格式化新鲜结账 | ? | ⬜ | ⬜ | ⬜ |
generic.EndWithNewlineStep | ? | ? | ⬜ | ⬜ |
generic.IndentStep | ? | ? | ⬜ | ⬜ |
generic.Jsr223Step | ⬜ | ? | ⬜ | ⬜ |
generic.LicenseHeaderStep | ? | ? | ? | ⬜ |
generic.NativeCmdStep | ? | ? | ⬜ | ⬜ |
generic.ReplaceRegexStep | ? | ? | ⬜ | ⬜ |
generic.ReplaceStep | ? | ? | ⬜ | ⬜ |
generic.TrimTrailingWhitespaceStep | ? | ? | ⬜ | ⬜ |
antlr4.Antlr4FormatterStep | ? | ? | ⬜ | ⬜ |
biome.BiomeStep | ? | ? | ⬜ | ⬜ |
cpp.ClangFormatStep | ? | ⬜ | ⬜ | ⬜ |
cpp.EclipseFormatterStep | ? | ? | ? | ⬜ |
go.GofmtFormatStep | ? | ⬜ | ⬜ | ⬜ |
gherkin.GherkinUtilsStep | ? | ? | ⬜ | ⬜ |
groovy.GrEclipseFormatterStep | ? | ? | ? | ⬜ |
java.GoogleJavaFormatStep | ? | ? | ? | ⬜ |
java.ImportOrderStep | ? | ? | ? | ⬜ |
java.PalantirJavaFormatStep | ? | ? | ⬜ | ⬜ |
java.RemoveUnusedImportsStep | ? | ? | ? | ⬜ |
java.EclipseJdtFormatterStep | ? | ? | ? | ⬜ |
java.FormatAnnotationsStep | ? | ? | ⬜ | ⬜ |
java.CleanthatJavaStep | ? | ? | ⬜ | ⬜ |
json.gson.GsonStep | ? | ? | ⬜ | ⬜ |
json.JacksonJsonStep | ? | ? | ⬜ | ⬜ |
json.JsonSimpleStep | ? | ? | ⬜ | ⬜ |
json.JsonPatchStep | ? | ? | ⬜ | ⬜ |
kotlin.KtLintStep | ? | ? | ? | ⬜ |
kotlin.KtfmtStep | ? | ? | ⬜ | ⬜ |
kotlin.DiktatStep | ? | ? | ⬜ | ⬜ |
markdown.FreshMarkStep | ? | ⬜ | ⬜ | ⬜ |
markdown.FlexmarkStep | ? | ? | ⬜ | ⬜ |
npm.EslintFormatterStep | ? | ? | ⬜ | ⬜ |
npm.PrettierFormatterStep | ? | ? | ⬜ | ⬜ |
npm.TsFmtFormatterStep | ? | ? | ⬜ | ⬜ |
pom.SortPomStep | ? | ? | ⬜ | ⬜ |
protobuf.BufStep | ? | ⬜ | ⬜ | ⬜ |
python.BlackStep | ? | ⬜ | ⬜ | ⬜ |
rdf.RdfFormatterStep | ⬜ | ? | ⬜ | ⬜ |
scala.ScalaFmtStep | ? | ? | ? | ⬜ |
shell.ShfmtStep | ? | ? | ⬜ | ⬜ |
sql.DBeaverSQLFormatterStep | ? | ? | ? | ⬜ |
wtp.EclipseWtpFormatterStep | ? | ? | ⬜ | ⬜ |
yaml.JacksonYamlStep | ? | ? | ⬜ | ⬜ |
(您的格式化程序步骤在这里) | ⬜ | ⬜ | ⬜ | ⬜ |
许多项目随着规模的扩大而变得更加困难。 Spotless 比以往任何时候都更容易开发,原因之一是我们不需要贡献者“填充矩阵”。如果您想添加 Bazel 支持,我们很乐意接受 PR,即使它只支持您使用的一种格式化程序。如果您想添加 FooFormatter 支持,我们会很乐意接受 PR,即使它只支持您使用的一种构建系统。
一旦有人填写了格式化程序/构建系统矩阵的一个方格,感兴趣的各方就可以轻松填写任何空方格,因为您现在将为所需的每个部分提供一个工作示例。
感谢 Konstantin Lutovich 实现和维护 Maven 插件,以及修复 Gradle 的远程构建缓存支持。
感谢 Frank Vennemeyer 通过 greclipse 提供的 Groovy 支持、通过 CDT 提供的 C++ 支持、通过 WTP 提供的 XML 支持以及与其他基于 eclipse 的格式化程序的大量工作。
感谢乔纳森·布鲁特-邓肯
实施最新检查#31
将库打得一尘不染 #56
还有很多其他的东西,尤其是spotlessCheck
中的 diff 支持
通过高质量的代码审查不断改进各种主题
感谢 Daz DeBoer 重新设计了 Gradle 插件的内部结构,以支持 buildcache、InputChanges 和惰性配置。
感谢 Richard Willis 为 Spotless Gradle 创建了 VS Code 扩展。
感谢 Ryan Gurney 为 Spotless Gradle 创建 IntelliJ 插件。
感谢 Markus Heberling 添加通用本机格式化程序、jsr-223 格式化程序和 maven pom 排序。
感谢 Matthias Balke 添加对 Antlr 的支持。
感谢 Matthias Andreas Benkard 添加了对 google-java-format 1.8+ 的支持 (#563)
感谢 Thomas Broyer 添加对 google-java-format 的skip-reflowing-long-strings 选项的支持。
感谢 Ranadeep Polavarapu 添加对 ktfmt 的支持 (#569)
感谢 Simon Gamma 添加了对基于 npm 的格式化程序的支持,其中两次包括prettier
和tsfmt
。
感谢 Hakanai 最后为导入排序器添加了通配符支持。
感谢 Kevin Brooks 将所有基于 Eclipse 的格式化程序更新到 4.13 并修复了 Groovy 的多项目问题。
感谢 Dylan Baroody 修复了对 JDBI 绑定列表参数的 SQL 格式支持。
感谢 figroc 为 google-java-format 添加自定义 mavenCooperative 支持。
感谢 Thomas Glaeser 发现并修复了文件权限破坏错误。
感谢 Joan Goyeau 修复了 scalafmt 集成。
感谢 Nick Sutcliffe 修复了 2.0 后的 scalafmt。
感谢巴蒂斯特·梅斯塔
将 DBeaver 格式化程序移植到 Spotless,并感谢 DBeaver 及其作者出色的 SQL 格式化程序。
使许可证标头具有日期意识 #179
感谢 vmdominguez 和 Luis Fors 分别在 Gradle (#322) 和 Maven (#392) 中添加了限制特定文件格式的功能。
感谢bender316修复了Java 9上的类加载(#426)。
感谢 Stefan Oehme 对 Gradle 内部机制的大量帮助。
感谢 eyalcaspi 将可配置的日期范围添加到日期感知许可证标头。
感谢 Andrew Parmet 添加对 kotlin gradle 的 ktfmt 支持。
感谢 Oliver Horn 为 Spotless 的 google-java-format 集成添加 AOSP 支持。
通过 Eclipse 格式化
特别感谢 Mateusz Matela 对 Eclipse 代码格式化程序的巨大改进!
感谢 Zac Sweers 修复了强烈要求的 ktlint 0.34+ 支持(#469)、多个构建更新并修复了 Gradle 弃用警告(#434 等)。
感谢 Stephen Panaro 添加对 ktlint FilenameRule 的支持 (#974)。
感谢 Nelson Osacky 对 Android 文档的改进、版本的提升和构建的改进。
感谢 Stanley Shyiko 帮助集成 ktlint。
感谢 Jonathan Leitschuh 添加对 Gradle Kotlin DSL 文件的 ktlint 支持。
最初由 Youri Bonnaffé 从 gradle-format-plugin 分叉出来。
感谢 Ismaël Mejía 将 eclipse-jdt 版本提升到 4.11。公关#60。
感谢 Gábor Bernát 对日志记录和多项目支持的改进。
感谢 Oliver Szymanski 将 tsfmt 和 prettier 移植到 Maven。
感谢 Andrew Oberstar 对非 Java 源集中格式化 Java 源的改进。公关#60。
感谢 Sameer Balasubrahmanyam 添加对 IntelliJ 风格年份占位符的支持。
感谢 Jamie Tanna 添加了一个简单的 JSON 格式化程序。
感谢 Adib Saikali 和 Paul Merlin 找出了 #506 的棘手原因。
从 EclipseCodeFormatter 导入排序。
由 gradle 构建。
由junit测试。
由 DiffPlug 维护。