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)·{ +ttif·(targets.length = = =·0)·{ 運行'./gradlew SpotlessApply' 修復這些違規行為。
user@machine repo % mvn Spotless:check[錯誤] > 以下文件存在格式衝突:[錯誤] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[錯誤] -tt···if·(targets.length·==·0)·{[錯誤] +ttif·(targets.length·==·0)·{[錯誤] 執行「mvn Spotless:apply」來修復這些違規行為。 mvn Spotless:檢查[訊息]建置成功
理想情況下,程式碼格式化程式不僅可以找到格式錯誤,還可以修復這些錯誤。這樣的格式化程式只是一個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 維護。