Spotless kann <antlr | formatieren c | c# | c++ | CSS | fließen | graphql | groovig | html | Java | Javascript | json | jsx | Kotlin | weniger | Lizenz-Header | Abschlag | Ziel-c | protobuf | Python | Skala | scss | Schale | sql | typeScript | vue | yaml | irgendetwas> mit <gradle | maven | sbt | irgendetwas>.
Sie möchten wahrscheinlich einen der folgenden Links:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED Die folgenden Dateien hatten Formatverletzungen: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ Führen Sie „./gradlew spotlessApply“ aus, um diese Verstöße zu beheben.user@machine repo % ./gradlew spotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn spotless:check[ERROR] > Die folgenden Dateien hatten Formatverletzungen:[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ FEHLER] +ttif·(targets.length·==·0)·{[FEHLER] Führen Sie 'mvn spotless:apply‘, um diese Verstöße zu beheben.user@machine repo % mvn spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn spotless:check[INFO] BUILD SUCCESS
Im Idealfall kann ein Codeformatierer mehr als nur Formatierungsfehler finden – er sollte diese auch beheben. Ein solcher Formatierer ist lediglich ein Function<String, String>
, der eine formatierte Version seiner möglicherweise unformatierten Eingabe zurückgibt.
Es ist einfach, eine solche Funktion zu erstellen, aber es gibt einige Fallstricke und viel Integrationsarbeit (Zeilenumbrüche, Zeichenkodierungen, Idempotenz, Git-Ratcheting und Build-System-Integration). Spotless erledigt diese für Sie , sodass Sie sich auf eine einfache Function<String, String>
konzentrieren können, die mit jedem der anderen Formatierer und Build-Tools im Arsenal von Spotless komponiert werden kann .
Funktion / FormatterStep | Gradle | Maven | sbt | (Ihr Build-Tool hier) |
---|---|---|---|---|
Automatische Idempotenzsicherung | ? | ? | ? | ⬜ |
Falsch konfigurierter Kodierungsschutz | ? | ? | ? | ⬜ |
Umschalten zwischen spotless:off und spotless:on | ? | ? | ⬜ | ⬜ |
Ratsche vom origin/main oder einer anderen Git-Ref | ? | ? | ⬜ | ⬜ |
Definieren Sie Zeilenenden mit Git | ? | ? | ? | ⬜ |
Schnelle inkrementelle Formatierung und Aktualitätsprüfung | ? | ? | ⬜ | ⬜ |
Schnelles Formatieren bei neuem Checkout mit 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 | ? | ? | ⬜ | ⬜ |
(Ihr FormatterStep hier) | ⬜ | ⬜ | ⬜ | ⬜ |
Viele Projekte werden mit zunehmender Größe schwieriger zu bearbeiten. Die Arbeit an Spotless ist einfacher als je zuvor, und einer der Gründe dafür ist, dass wir von Mitwirkenden nicht verlangen, dass sie „die Matrix ausfüllen“. Wenn Sie Bazel-Unterstützung hinzufügen möchten, akzeptieren wir die PR gerne, auch wenn nur der von Ihnen verwendete Formatierer unterstützt wird. Und wenn Sie FooFormatter-Unterstützung hinzufügen möchten, akzeptieren wir die PR gerne, auch wenn nur das von Ihnen verwendete Build-System unterstützt wird.
Sobald jemand ein Quadrat der Formatierungs-/Build-Systemmatrix ausgefüllt hat, ist es für interessierte Parteien einfach, alle leeren Quadrate auszufüllen, da Sie jetzt für jedes benötigte Teil ein funktionierendes Beispiel haben.
Vielen Dank an Konstantin Lutovich für die Implementierung und Wartung des Maven-Plugins sowie für die Korrektur der Remote-Build-Cache-Unterstützung für Gradle.
Vielen Dank an Frank Vennemeyer für die Groovy-Unterstützung über Greclipse, die C++-Unterstützung über CDT, die XML-Unterstützung über WTP und die umfangreiche Arbeit mit anderen Eclipse-basierten Formatierern.
Vielen Dank an Jonathan Bluett-Duncan für
Implementierung der aktuellen Prüfung Nr. 31
Einbruch in Bibliotheken #56
viele andere Dinge, aber insbesondere die Diff-Unterstützung in spotlessCheck
Ständige Verbesserungen zu einer Vielzahl von Themen mit hochwertigen Code-Reviews
Vielen Dank an Daz DeBoer für die Überarbeitung unseres Gradle-Plugins, um Buildcache, InputChanges und Lazy-Konfiguration zu unterstützen.
Vielen Dank an Richard Willis für die Erstellung der VS Code-Erweiterung für Spotless Gradle.
Vielen Dank an Ryan Gurney für die Erstellung des IntelliJ-Plugins für Spotless Gradle.
Vielen Dank an Markus Heberling für das Hinzufügen generischer nativer Formatierer, jsr-223-Formatierer und Maven-POM-Sortierung.
Vielen Dank an Matthias Balke für die Unterstützung von Antlr.
Vielen Dank an Matthias Andreas Benkard für die Unterstützung für Google-Java-Format 1.8+ (#563)
Vielen Dank an Thomas Broyer für die Unterstützung der Option „skip-reflowing-long-strings“ im Google-Java-Format.
Vielen Dank an Ranadeep Polavarapu für die Unterstützung für ktfmt (#569)
Vielen Dank an Simon Gamma für die Unterstützung für npm-basierte Formatierer, darunter zweimal prettier
und tsfmt
.
Vielen Dank an Hakanai für das Hinzufügen der Wildcard-Last-Unterstützung zum Importsortierer.
Vielen Dank an Kevin Brooks für die Aktualisierung aller Eclipse-basierten Formatierer auf 4.13 und die Korrektur von Groovy für Multiprojekte.
Vielen Dank an Dylan Baroody für die Korrektur der SQL-Formatierungsunterstützung für JDBI-Bindungslistenparameter.
Vielen Dank an Figroc für das Hinzufügen der benutzerdefinierten MavenCoordinate-Unterstützung zum Google-Java-Format.
Vielen Dank an Thomas Glaeser für das Finden und Beheben eines Fehlers, der die Dateiberechtigungen blockiert.
Vielen Dank an Joan Goyeau für die Korrektur der Scalafmt-Integration.
Vielen Dank an Nick Sutcliffe für die Korrektur von scalafmt nach 2.0.
Vielen Dank an Baptiste Mesta für
Portierung des DBeaver-Formatierers auf Spotless und vielen Dank an DBeaver und seine Autoren für ihren hervorragenden SQL-Formatierer.
Lizenz-Header datumsabhängig machen #179
Vielen Dank an vmdominguez und Luis Fors für die Möglichkeit, die Formatierung auf bestimmte Dateien in Gradle (#322) bzw. Maven (#392) zu beschränken.
Vielen Dank an bender316 für die Behebung des Klassenladens auf Java 9 (#426).
Vielen Dank an Stefan Oehme für jede Menge Hilfe bei der internen Mechanik von Gradle.
Vielen Dank an eyalkaspi für das Hinzufügen konfigurierbarer Datumsbereiche zu den datumsbezogenen Lizenzheadern.
Vielen Dank an Andrew Parmet für das Hinzufügen der ktfmt-Unterstützung für Kotlin Gradle.
Vielen Dank an Oliver Horn für die AOSP-Unterstützung für die Google-Java-Format-Integration von Spotless.
Formatierung durch Eclipse
Besonderer Dank geht an Mateusz Matela für die enormen Verbesserungen am Eclipse-Codeformatierer!
Vielen Dank an Zac Sweers für die Behebung der stark nachgefragten Unterstützung für ktlint 0.34+ (#469), mehrere Build-Updates und die Behebung einer Gradle-Veraltungswarnung (#434 und andere).
Vielen Dank an Stephen Panaro für die Unterstützung für ktlint FilenameRule (#974).
Vielen Dank an Nelson Osacky für die Verbesserungen der Android-Dokumente, Versionsverbesserungen und eine Build-Verbesserung.
Vielen Dank an Stanley Shyiko für seine Hilfe bei der Integration von ktlint.
Vielen Dank an Jonathan Leitschuh für das Hinzufügen der ktlint-Unterstützung für Gradle Kotlin DSL-Dateien.
Ursprünglich von Youri Bonnaffé aus dem Gradle-Format-Plugin abgeleitet.
Vielen Dank an Ismaël Mejía für die Aktualisierung der Eclipse-JDT-Deps auf 4.11. PR #60.
Vielen Dank an Gábor Bernát für Verbesserungen bei der Protokollierung und Unterstützung mehrerer Projekte.
Vielen Dank an Oliver Szymanski für die Portierung von tsfmt und prettier nach Maven.
Vielen Dank an Andrew Oberstar für Verbesserungen bei der Formatierung von Java-Quellen in Nicht-Java-Quellensätzen. PR #60.
Vielen Dank an Sameer Balasubrahmanyam für die Unterstützung für Jahresplatzhalter im IntelliJ-Stil.
Vielen Dank an Jamie Tanna für das Hinzufügen eines einfachen JSON-Formatierers.
Vielen Dank an Adib Saikali und Paul Merlin für die Aufklärung der kniffligen Ursache von #506.
Importieren Sie die Bestellung aus EclipseCodeFormatter.
Gebaut von Gradle.
Getestet von junit.
Verwaltet von DiffPlug.