Spotless dapat memformat <antlr | c | c# | c++ | css | aliran | grafikql | asyik | html | jawa | javascript | json | jsx | kotlin | kurang | header lisensi | penurunan harga | tujuan-c | protobuf | ular piton | skala | scss | cangkang | sql | skrip ketik | lihat | yaml | apa saja> menggunakan <gradle | pakar | sbt | apa saja>.
Anda mungkin menginginkan salah satu tautan di bawah ini:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED File berikut mengalami pelanggaran format: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ Jalankan './gradlew spotlessApply' untuk memperbaiki pelanggaran ini.user@machine repo % ./gradlew spotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn spotless:check[ERROR] > File berikut mengalami pelanggaran format:[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ ERROR] +ttif·(targets.length·==·0)·{[ERROR] Jalankan 'mvn spotless:apply' untuk memperbaiki pelanggaran ini.user@machine repo % mvn spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn spotless:check[INFO] BUILD SUCCESS
Idealnya, pemformat kode dapat melakukan lebih dari sekadar menemukan kesalahan pemformatan - ia juga harus memperbaikinya. Pemformat seperti itu hanyalah Function<String, String>
, yang mengembalikan versi terformat dari masukan yang mungkin belum diformat.
Sangat mudah untuk membangun fungsi seperti itu, tetapi ada beberapa masalah dan banyak pekerjaan integrasi (baris baru, pengkodean karakter, idempotensi, git ratcheting, dan integrasi sistem pembangunan). Spotless menanganinya untuk Anda sehingga Anda dapat fokus hanya pada Function<String, String>
sederhana yang dapat dibuat dengan formatter lain dan membuat alat di gudang senjata Spotless .
Fitur / FormatterStep | kelas | pakar | sbt | (Alat pembuatan Anda di sini) |
---|---|---|---|---|
Perlindungan idempotensi otomatis | ? | ? | ? | ⬜ |
Perlindungan pengkodean salah dikonfigurasi | ? | ? | ? | ⬜ |
Beralih dengan spotless:off dan spotless:on | ? | ? | ⬜ | ⬜ |
Ratchet dari origin/main atau git ref lainnya | ? | ? | ⬜ | ⬜ |
Tentukan akhiran baris menggunakan git | ? | ? | ? | ⬜ |
Format tambahan cepat dan pemeriksaan terkini | ? | ? | ⬜ | ⬜ |
Format cepat pada checkout baru menggunakan 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 | ? | ? | ⬜ | ⬜ |
(FormatterStep Anda di sini) | ⬜ | ⬜ | ⬜ | ⬜ |
Banyak proyek menjadi lebih sulit untuk dikerjakan seiring bertambahnya besar. Spotless lebih mudah untuk dikerjakan dibandingkan sebelumnya, dan salah satu alasannya adalah kami tidak memerlukan kontributor untuk "mengisi matriks". Jika Anda ingin menambahkan dukungan Bazel, kami akan dengan senang hati menerima PR meskipun hanya mendukung satu formatter yang Anda gunakan. Dan jika Anda ingin menambahkan dukungan FooFormatter, kami dengan senang hati akan menerima PR meskipun hanya mendukung satu sistem build yang Anda gunakan.
Setelah seseorang mengisi satu kotak matriks formatter/sistem build, mudah bagi pihak yang berkepentingan untuk mengisi kotak kosong mana pun, karena Anda kini memiliki contoh kerja untuk setiap bagian yang dibutuhkan.
Terima kasih kepada Konstantin Lutovich karena telah mengimplementasikan dan memelihara plugin Maven, serta memperbaiki dukungan cache build jarak jauh untuk Gradle.
Terima kasih kepada Frank Vennemeyer atas dukungan Groovy melalui greclipse, dukungan C++ melalui CDT, dukungan XML melalui WTP dan banyak pekerjaan dengan pemformat berbasis gerhana lainnya.
Terima kasih kepada Jonathan Bluett-Duncan untuk
menerapkan pemeriksaan terkini #31
membobol perpustakaan #56 dengan sempurna
banyak hal lainnya, terutama dukungan diff di spotlessCheck
perbaikan terus-menerus pada berbagai topik dengan tinjauan kode berkualitas tinggi
Terima kasih kepada Daz DeBoer atas pengerjaan ulang plugin Gradle kami untuk mendukung buildcache, InputChanges, dan konfigurasi lambat.
Terima kasih kepada Richard Willis karena telah membuat ekstensi VS Code untuk Spotless Gradle.
Terima kasih kepada Ryan Gurney karena telah membuat plugin IntelliJ untuk Spotless Gradle.
Terima kasih kepada Markus Heberling karena telah menambahkan pemformat asli generik, pemformat jsr-223, dan penyortiran maven pom.
Terima kasih kepada Matthias Balke karena telah menambahkan dukungan untuk Antlr.
Terima kasih kepada Matthias Andreas Benkard karena menambahkan dukungan untuk google-java-format 1.8+ (#563)
Terima kasih kepada Thomas Broyer karena telah menambahkan dukungan untuk opsi skip-reflowing-long-strings format google-java.
Terima kasih kepada Ranadeep Polavarapu karena menambahkan dukungan untuk ktfmt (#569)
Terima kasih kepada Simon Gamma karena telah menambahkan dukungan untuk pemformat berbasis npm, dua kali termasuk prettier
dan tsfmt
.
Terima kasih kepada Hakanai karena telah menambahkan dukungan terakhir wildcard ke penyortir impor.
Terima kasih kepada Kevin Brooks karena telah memperbarui semua pemformat berbasis gerhana ke 4.13 dan memperbaiki Groovy untuk multiproyek.
Terima kasih kepada Dylan Baroody karena telah memperbaiki dukungan pemformatan sql untuk parameter daftar pengikatan JDBI.
Terima kasih kepada figroc karena telah menambahkan dukungan mavenCoordinate khusus ke format google-java.
Terima kasih kepada Thomas Glaeser karena telah menemukan dan memperbaiki bug yang mengganggu izin file.
Terima kasih kepada Joan Goyeau karena telah memperbaiki integrasi scalafmt.
Terima kasih kepada Nick Sutcliffe karena telah memperbaiki scalafmt pasca-2.0.
Terima kasih kepada Baptiste Mesta untuk
mem-porting pemformat DBeaver ke Spotless, dan terima kasih kepada DBeaver dan penulisnya atas pemformat SQL mereka yang luar biasa.
membuat header lisensi mengetahui tanggal #179
Terima kasih kepada vmdominguez dan Luis Fors yang telah menambahkan kemampuan untuk membatasi pemformatan pada file tertentu di Gradle (#322) dan Maven (#392), masing-masing.
Terima kasih kepada bender316 karena telah memperbaiki pemuatan kelas di Java 9 (#426).
Terima kasih kepada Stefan Oehme atas banyak bantuannya pada mekanisme internal Gradle.
Terima kasih kepada eyalkaspi karena telah menambahkan rentang tanggal yang dapat dikonfigurasi ke header lisensi yang mengetahui tanggal.
Terima kasih kepada Andrew Parmet karena telah menambahkan dukungan ktfmt untuk kotlin gradle.
Terima kasih kepada Oliver Horn karena telah menambahkan dukungan AOSP untuk integrasi format google-java Spotless.
Memformat dengan Eclipse
Terima kasih khusus kepada Mateusz Matela atas perbaikan besar pada pemformat kode gerhana!
Terima kasih kepada Zac Sweers yang telah memperbaiki dukungan ktlint 0.34+ yang sangat diminta (#469), beberapa pembaruan versi dan memperbaiki peringatan penghentian Gradle (#434 dan lainnya).
Terima kasih kepada Stephen Panaro karena menambahkan dukungan untuk ktlint FilenameRule (#974).
Terima kasih kepada Nelson Osacky untuk peningkatan dokumen Android, peningkatan versi, dan peningkatan versi.
Terima kasih kepada Stanley Shyiko atas bantuannya dalam mengintegrasikan ktlint.
Terima kasih kepada Jonathan Leitschuh karena telah menambahkan dukungan ktlint untuk file DSL Gradle Kotlin.
Awalnya bercabang dari plugin gradle-format oleh Youri Bonnaffé.
Terima kasih kepada Ismaël Mejía karena telah meningkatkan deps Eclipse-jdt ke 4.11. PR #60.
Terima kasih kepada Gábor Bernát atas perbaikan pada logging dan dukungan multi-proyek.
Terima kasih kepada Oliver Szymanski karena telah mem-porting tsfmt dan lebih cantik ke pakar.
Terima kasih kepada Andrew Oberstar atas perbaikan dalam memformat sumber java di kumpulan sumber non-java. PR #60.
Terima kasih kepada Sameer Balasubrahmanyam karena telah menambahkan dukungan untuk placeholder tahun bergaya IntelliJ.
Terima kasih kepada Jamie Tanna karena telah menambahkan pemformat JSON sederhana.
Terima kasih kepada Adib Saikali dan Paul Merlin karena telah melacak penyebab rumit #506.
Impor pemesanan dari EclipseCodeFormatter.
Dibangun secara bertahap.
Diuji oleh junit.
Dikelola oleh DiffPlug.