Spotless สามารถจัดรูปแบบ <antlr | ค | ค# | ค++ | ซีเอสเอส | ไหล | กราฟคิวแอล | แรงมาก | html | ชวา | จาวาสคริปต์ | เจสัน | jsx | คอตลิน | น้อยลง | ส่วนหัวใบอนุญาต | มาร์กดาวน์ | วัตถุประสงค์-c | โปรโตบุฟ | หลาม | สกาล่า | เอสซีเอส | เปลือก | ฐานข้อมูล SQL | typeScript | วิว | yaml | อะไรก็ได้> โดยใช้ <gradle | มาเวน | เอสบีที | อะไรก็ได้>.
คุณอาจต้องการลิงค์ใดลิงค์หนึ่งด้านล่าง:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED ไฟล์ต่อไปนี้มีการละเมิดรูปแบบ: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ เรียกใช้ './gradlew spotlessApply' เพื่อแก้ไขการละเมิดเหล่านี้ repo % ./gradlew spotlessApply:spotlessApplyBUILD SUCCESSFULuser@machine repo % ./gradlew buildBUILD SUCCESSFUL
user@machine repo % mvn Spotless:check[ERROR] > ไฟล์ต่อไปนี้มีการละเมิดรูปแบบ:[ERROR] srcmainjavacomdiffpluggradlespotlessFormatExtension.java[ERROR] -tt····if·(targets.length·==·0)·{[ ข้อผิดพลาด] +ttif·(targets.length·==·0)·{[ข้อผิดพลาด] เรียกใช้ 'mvn Spotless:apply' เพื่อแก้ไขการละเมิดเหล่านี้ user@machine repo % mvn spotless:apply[INFO] BUILD SUCCESSuser@machine repo % mvn spotless:check[INFO] BUILD SUCCESS
ตามหลักการแล้ว ตัวจัดรูปแบบโค้ดสามารถทำได้มากกว่าแค่ค้นหาข้อผิดพลาดในการจัดรูปแบบ แต่ยังควรแก้ไขข้อผิดพลาดด้วยเช่นกัน ตัวจัดรูปแบบดังกล่าวเป็นเพียง Function<String, String>
ซึ่งส่งคืนเวอร์ชันที่จัดรูปแบบแล้วของอินพุตที่อาจไม่ได้จัดรูปแบบ
การสร้างฟังก์ชันดังกล่าวเป็นเรื่องง่าย แต่มี gotchas บางส่วนและงานบูรณาการมากมาย (การขึ้นบรรทัดใหม่ การเข้ารหัสอักขระ idempotency การต่อวงล้อคอมไพล์ และการรวมระบบการสร้าง) Spotless จัดการกับสิ่งเหล่านั้นสำหรับคุณ เพื่อให้คุณสามารถมุ่งเน้นไปที่ Function<String, String>
ง่ายๆ ซึ่งสามารถเขียนร่วมกับฟอร์แมตเตอร์อื่นๆ และสร้างเครื่องมือในคลังแสงของ Spotless
คุณสมบัติ / ฟอร์แมตเตอร์ขั้นตอน | ไล่ระดับ | มาเวน | เอสบีที | (เครื่องมือสร้างของคุณที่นี่) |
---|---|---|---|---|
การป้องกันการระบุตำแหน่งอัตโนมัติ | - | - | - | |
การป้องกันการเข้ารหัสที่กำหนดค่าไม่ถูกต้อง | - | - | - | |
สลับกับ spotless:off และ spotless:on | - | - | ||
Ratchet จาก origin/main หรือการอ้างอิง git อื่น ๆ | - | - | ||
กำหนดจุดสิ้นสุดบรรทัดโดยใช้ 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 | - | - | ||
(FormatterStep ของคุณที่นี่) |
หลายโครงการจะยากขึ้นเมื่อมีขนาดใหญ่ขึ้น Spotless ทำงานง่ายกว่าที่เคย และเหตุผลหนึ่งก็คือเราไม่ต้องการให้ผู้มีส่วนร่วม "เติมเมทริกซ์" หากคุณต้องการเพิ่มการรองรับ Bazel เรายินดียอมรับ PR แม้ว่าจะรองรับเฉพาะฟอร์แมตเตอร์ที่คุณใช้ก็ตาม และหากคุณต้องการเพิ่มการรองรับ FooFormatter เราก็ยินดียอมรับ PR แม้ว่าจะรองรับเฉพาะระบบบิลด์เดียวที่คุณใช้ก็ตาม
เมื่อมีคนเติมเมทริกซ์ระบบฟอร์แมตเตอร์/บิลด์ลงในช่องเดียวแล้ว ผู้มีส่วนได้เสียจะกรอกข้อมูลลงในช่องสี่เหลี่ยมว่างๆ ได้อย่างง่ายดาย เนื่องจากตอนนี้คุณจะมีตัวอย่างการทำงานสำหรับทุกชิ้นที่ต้องการแล้ว
ขอขอบคุณ Konstantin Lutovich สำหรับการใช้งานและบำรุงรักษาปลั๊กอิน Maven รวมถึงแก้ไขการรองรับแคช build ระยะไกลสำหรับ Gradle
ขอขอบคุณ Frank Vennemeyer สำหรับการรองรับ Groovy ผ่าน greclipse, การรองรับ C++ ผ่าน CDT, การรองรับ XML ผ่าน WTP และงานจำนวนมากร่วมกับฟอร์แมตเตอร์ที่ใช้ eclipse อื่นๆ
ขอขอบคุณ Jonathan Bluett-Duncan สำหรับ
ดำเนินการตรวจสอบที่ทันสมัย #31
แตกสลายเป็นห้องสมุด #56
มีสิ่งอื่น ๆ อีกมากมาย แต่โดยเฉพาะอย่างยิ่งการสนับสนุนที่แตกต่างใน spotlessCheck
การปรับปรุงอย่างต่อเนื่องในหัวข้อต่างๆ ด้วยการตรวจสอบโค้ดคุณภาพสูง
ขอขอบคุณ Daz DeBoer สำหรับการปรับปรุงปลั๊กอิน Gradle ของเราเพื่อรองรับ buildcache, InputChanges และการกำหนดค่าแบบ Lazy
ขอบคุณ Richard Willis ที่สร้างส่วนขยาย VS Code สำหรับ Spotless Gradle
ขอบคุณ Ryan Gurney ที่สร้างปลั๊กอิน IntelliJ สำหรับ Spotless Gradle
ขอขอบคุณ Markus Heberling ที่เพิ่มตัวจัดรูปแบบเนทิฟทั่วไป, ตัวจัดรูปแบบ jsr-223 และการเรียงลำดับ maven pom
ขอบคุณ Matthias Balke ที่เพิ่มการสนับสนุน Antlr
ขอบคุณ Matthias Andreas Benkard ที่เพิ่มการรองรับสำหรับ google-java-format 1.8+ (#563)
ขอบคุณ Thomas Broyer ที่เพิ่มการรองรับตัวเลือกข้ามสตริงยาวของ google-java-format
ขอขอบคุณ Ranadeep Polavarapu ที่ให้การสนับสนุน ktfmt (#569)
ขอบคุณ Simon Gamma สำหรับการเพิ่มการสนับสนุนสำหรับตัวจัดรูปแบบที่ใช้ npm สองครั้งรวมถึง prettier
และ tsfmt
ขอขอบคุณ Hakanai สำหรับการเพิ่มการสนับสนุน wildcard ล่าสุดให้กับตัวเรียงลำดับการนำเข้า
ขอขอบคุณ Kevin Brooks สำหรับการอัปเดตฟอร์แมตเตอร์ที่ใช้ eclipse ทั้งหมดเป็น 4.13 และแก้ไข Groovy สำหรับหลายโครงการ
ขอบคุณ Dylan Baroody สำหรับการแก้ไขการรองรับการจัดรูปแบบ sql สำหรับพารามิเตอร์รายการผูก JDBI
ขอบคุณ figroc สำหรับการเพิ่มการสนับสนุน mavenCoordinate ที่กำหนดเองให้กับรูปแบบ google-java
ขอขอบคุณ Thomas Glaeser สำหรับการค้นหาและแก้ไขข้อผิดพลาดในการอนุญาตไฟล์
ขอขอบคุณ Joan Goyeau สำหรับการแก้ไขการรวมสกาลาฟต์
ขอบคุณ Nick Sutcliffe สำหรับการแก้ไข scalafmt post-2.0
ขอขอบคุณ Baptiste Mesta สำหรับ
ย้ายฟอร์แมตเตอร์ DBeaver ไปที่ Spotless และขอขอบคุณ DBeaver และผู้แต่งสำหรับฟอร์แมตเตอร์ SQL ที่ยอดเยี่ยม
ทำให้ส่วนหัวของใบอนุญาตทราบวันที่ #179
ขอขอบคุณ vmdominguez และ Luis Fors ที่เพิ่มความสามารถในการจำกัดการจัดรูปแบบให้กับไฟล์เฉพาะใน Gradle (#322) และ Maven (#392) ตามลำดับ
ขอบคุณ Bender316 สำหรับการแก้ไข classloading บน Java 9 (#426)
ขอบคุณ Stefan Oehme สำหรับความช่วยเหลือมากมายเกี่ยวกับกลไกภายในของ Gradle
ขอขอบคุณ eyalkaspi สำหรับการเพิ่มช่วงวันที่ที่กำหนดค่าได้ให้กับส่วนหัวใบอนุญาต date-aware
ขอบคุณ Andrew Parmet สำหรับการเพิ่มการรองรับ ktfmt สำหรับ kotlin gradle
ขอขอบคุณ Oliver Horn ที่เพิ่มการรองรับ AOSP สำหรับการรวมรูปแบบ google-java-format ของ Spotless
การจัดรูปแบบโดย Eclipse
ขอขอบคุณเป็นพิเศษสำหรับ Mateusz Matela สำหรับการปรับปรุงตัวจัดรูปแบบโค้ด eclipse อย่างมาก!
ขอขอบคุณ Zac Sweers สำหรับการแก้ไขการสนับสนุน ktlint 0.34+ ที่ได้รับการร้องขออย่างสูง (#469) การอัปเดตบิลด์หลายรายการ และแก้ไขคำเตือนการเลิกใช้งาน Gradle (#434 และอื่น ๆ )
ขอบคุณ Stephen Panaro ที่เพิ่มการรองรับ ktlint FilenameRule (#974)
ขอขอบคุณ Nelson Osacky สำหรับการปรับปรุงเอกสาร Android, เวอร์ชัน Bump และการปรับปรุงงานสร้าง
ขอขอบคุณ Stanley Shyiko สำหรับความช่วยเหลือในการบูรณาการ ktlint
ขอบคุณ Jonathan Leitschuh ที่เพิ่มการรองรับ ktlint สำหรับไฟล์ Gradle Kotlin DSL
เดิมทีแยกจาก gradle-format-plugin โดย Youri Bonnaffé
ขอบคุณ Ismaël Mejía สำหรับการชน eclipse-jdt deps เป็น 4.11 ประชาสัมพันธ์ #60.
ขอขอบคุณ Gábor Bernát สำหรับการปรับปรุงการบันทึกและการสนับสนุนหลายโครงการ
ขอบคุณ Oliver Szymanski สำหรับการย้าย tsfmt และสวยกว่าสำหรับ maven
ขอขอบคุณ Andrew Oberstar สำหรับการปรับปรุงการจัดรูปแบบซอร์ส Java ในชุดซอร์สที่ไม่ใช่ Java ประชาสัมพันธ์ #60.
ขอขอบคุณ Sameer Balasubrahmanyam ที่เพิ่มการสนับสนุนสำหรับตัวยึดตำแหน่งปีแบบ IntelliJ
ขอบคุณ Jamie Tanna สำหรับการเพิ่มฟอร์แมตเตอร์ JSON แบบธรรมดา
ขอขอบคุณ Adib Saikali และ Paul Merlin สำหรับการติดตามสาเหตุที่ยุ่งยากของ #506
นำเข้าลำดับจาก EclipseCodeFormatter
สร้างโดยการไล่ระดับ
ทดสอบโดยจูน
ดูแลโดย DiffPlug