Spotless peut formater <antlr | c | c# | c++ | css | flux | graphql | génial | HTML | Java | javascript | json | jsx | kotlin | moins | en-têtes de licence | démarque | objectif-c | protobuf | python | échelle | scss | coquille | sql | dactylographié | vue | yaml | n'importe quoi> en utilisant <gradle | maven | tsb | n'importe quoi>.
Vous souhaitez probablement l'un des liens ci-dessous :
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED Les fichiers suivants présentaient des violations de format : srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ Exécutez './gradlew spotlessApply' pour corriger ces violations.user@machine repo % ./gradlew spotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn spotless:check[ERROR] > Les fichiers suivants présentaient des violations de format :[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ ERREUR] +ttif·(targets.length·==·0)·{[ERREUR] Exécutez 'mvn spotless:apply' pour corriger ces violations.user@machine repo % mvn spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn spotless:check[INFO] BUILD SUCCESS
Idéalement, un formateur de code peut faire plus que simplement rechercher les erreurs de formatage : il devrait également les corriger. Un tel formateur n'est qu'un Function<String, String>
, qui renvoie une version formatée de son entrée potentiellement non formatée.
Il est facile de créer une telle fonction, mais il y a quelques pièges et beaucoup de travail d'intégration (nouvelles lignes, encodages de caractères, idempotence, ratcheting git et intégration du système de construction). Spotless s'attaque à ceux-ci pour vous afin que vous puissiez vous concentrer sur un simple Function<String, String>
qui peut composer avec n'importe lequel des autres formateurs et créer des outils dans l'arsenal de Spotless .
Fonctionnalité/Étape du formateur | diplôme | maven | tn | (Votre outil de construction ici) |
---|---|---|---|---|
Sauvegarde automatique de l'idempotence | ? | ? | ? | ⬜ |
Sauvegarde d'encodage mal configurée | ? | ? | ? | ⬜ |
Activer/désactiver spotless:off et spotless:on | ? | ? | ⬜ | ⬜ |
Cliquet d' origin/main ou autre réf. git | ? | ? | ⬜ | ⬜ |
Définir les fins de ligne en utilisant git | ? | ? | ? | ⬜ |
Format incrémentiel rapide et vérification à jour | ? | ? | ⬜ | ⬜ |
Formatage rapide lors d'un nouveau paiement à l'aide de 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 | ? | ? | ⬜ | ⬜ |
(Votre étape de formateur ici) | ⬜ | ⬜ | ⬜ | ⬜ |
De nombreux projets deviennent plus difficiles à réaliser à mesure qu’ils grandissent. Spotless est plus facile à travailler que jamais, et l'une des raisons pour cela est que nous n'exigeons pas des contributeurs qu'ils « remplissent la matrice ». Si vous souhaitez ajouter la prise en charge de Bazel, nous accepterions volontiers le PR même s'il ne prend en charge que le seul formateur que vous utilisez. Et si vous souhaitez ajouter la prise en charge de FooFormatter, nous accepterons volontiers le PR même s'il ne prend en charge que le système de build que vous utilisez.
Une fois que quelqu'un a rempli un carré de la matrice du système de formatage/construction, il est facile pour les parties intéressées de remplir les carrés vides, puisque vous aurez désormais un exemple fonctionnel pour chaque élément nécessaire.
Merci à Konstantin Lutovich pour l'implémentation et la maintenance du plugin Maven, ainsi que pour la correction de la prise en charge du cache de construction à distance pour Gradle.
Merci à Frank Vennemeyer pour le support Groovy via greclipse, le support C++ via CDT, le support XML via WTP et un énorme travail avec d'autres formateurs basés sur Eclipse.
Merci à Jonathan Bluett-Duncan pour
mise en œuvre de la vérification à jour #31
pénétrer impeccablement dans les bibliothèques #56
plein d'autres choses, mais surtout le support des diff dans spotlessCheck
améliorations constantes sur une variété de sujets avec des révisions de code de haute qualité
Merci à Daz DeBoer pour avoir retravaillé l'essentiel de notre plugin Gradle pour prendre en charge buildcache, InputChanges et la configuration paresseuse.
Merci à Richard Willis pour avoir créé l'extension VS Code pour Spotless Gradle.
Merci à Ryan Gurney pour la création du plugin IntelliJ pour Spotless Gradle.
Merci à Markus Heberling pour l'ajout de formateurs natifs génériques, de formateurs jsr-223 et du tri maven pom.
Merci à Matthias Balke pour l'ajout du support pour Antlr.
Merci à Matthias Andreas Benkard pour l'ajout du support du format google-java 1.8+ (#563)
Merci à Thomas Broyer pour l'ajout de la prise en charge de l'option skip-reflowing-long-strings de google-java-format.
Merci à Ranadeep Polavarapu pour l'ajout du support pour ktfmt (#569)
Merci à Simon Gamma pour l'ajout de la prise en charge des formateurs basés sur npm, dont deux fois prettier
et tsfmt
.
Merci à Hakanai pour avoir ajouté le dernier support des caractères génériques au trieur d'importation.
Merci à Kevin Brooks pour la mise à jour de tous les formateurs basés sur Eclipse vers la version 4.13 et la correction de Groovy pour le multiprojet.
Merci à Dylan Baroody pour avoir corrigé la prise en charge du formatage SQL pour les paramètres de la liste de liaison JDBI.
Merci à figroc d'avoir ajouté la prise en charge personnalisée de mavenCoordonnée au format google-java.
Merci à Thomas Glaeser d'avoir trouvé et corrigé un bug affectant les autorisations de fichiers.
Merci à Joan Goyeau pour avoir corrigé l'intégration scalafmt.
Merci à Nick Sutcliffe pour avoir corrigé scalafmt post-2.0.
Merci à Baptiste Mesta pour
portage du formateur DBeaver sur Spotless, et merci à DBeaver et à ses auteurs pour leur excellent formateur SQL.
rendre les en-têtes de licence sensibles à la date #179
Merci à vmdominguez et Luis Fors pour avoir ajouté la possibilité de limiter le formatage à des fichiers spécifiques dans Gradle (#322) et Maven (#392), respectivement.
Merci à bender316 pour avoir corrigé le chargement de classes sur Java 9 (#426).
Merci à Stefan Oehme pour son aide précieuse sur la mécanique interne de Gradle.
Merci à eyalkaspi d'avoir ajouté des plages de dates configurables aux en-têtes de licence prenant en compte la date.
Merci à Andrew Parmet d'avoir ajouté la prise en charge de ktfmt pour Kotlin Gradle.
Merci à Oliver Horn d'avoir ajouté la prise en charge AOSP pour l'intégration au format Google-Java de Spotless.
Formatage par Eclipse
Un merci spécial à Mateusz Matela pour les énormes améliorations apportées au formateur de code Eclipse !
Merci à Zac Sweers pour avoir corrigé le support très demandé de ktlint 0.34+ (#469), plusieurs mises à jour de build et corrigé un avertissement de dépréciation de Gradle (#434 et autres).
Merci à Stephen Panaro pour l'ajout de la prise en charge de ktlint FilenameRule (#974).
Merci à Nelson Osacky pour les améliorations de la documentation Android, l'amélioration des versions et une amélioration de la version.
Merci à Stanley Shyiko pour son aide à l'intégration de ktlint.
Merci à Jonathan Leitschuh pour avoir ajouté la prise en charge de ktlint pour les fichiers Gradle Kotlin DSL.
Initialement dérivé du plugin gradle-format-plugin par Youri Bonnaffé.
Merci à Ismaël Mejía d'avoir fait passer les deps d'eclipse-jdt à 4.11. RP #60.
Merci à Gábor Bernát pour les améliorations de la journalisation et la prise en charge multi-projets.
Merci à Oliver Szymanski pour le portage de tsfmt et plus joli vers maven.
Merci à Andrew Oberstar pour les améliorations apportées au formatage des sources Java dans les ensembles de sources non Java. RP #60.
Merci à Sameer Balasubrahmanyam pour l'ajout de la prise en charge des espaces réservés d'année de style IntelliJ.
Merci à Jamie Tanna pour l'ajout d'un simple formateur JSON.
Merci à Adib Saikali et Paul Merlin d'avoir trouvé la cause délicate du #506.
Importez la commande depuis EclipseCodeFormatter.
Construit par diplôme.
Testé par Junit.
Maintenu par DiffPlug.