يمكن لـ Spotless تنسيق <antlr | ج | ج # | ج++ | المغلق | تدفق | الرسم البياني | رائع | أتش تي أم أل | جافا | جافا سكريبت | جيسون | جي اس اكس | كوتلين | أقل | رؤوس الترخيص | تخفيض السعر | الهدف ج | بروتوبوف | بيثون | سكالا | سسس | قذيفة | مزود | تايب سكريبت | نظرة | يامل | أي شيء> باستخدام <gradle | مخضرم | سبت | أي شيء>.
ربما تريد أحد الروابط أدناه:
user@machine repo % ./gradlew build:spotlessJavaCheck FAILED الملفات التالية بها انتهاكات للتنسيق: srcmainjavacomdiffpluggradlespotlessFormatExtension.java -tt····if·(targets.length·==·0)·{ +ttif·(targets.length· ==·0)·{ قم بتشغيل './gradlew SpotlessApply' لإصلاح هذه الانتهاكات.user@machine الريبو٪ ./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 نظيف: تقدم بطلب لإصلاح هذه الانتهاكات.
من الناحية المثالية، يمكن لمنسق التعليمات البرمجية القيام بأكثر من مجرد العثور على أخطاء التنسيق - بل يجب عليه إصلاحها أيضًا. مثل هذا المنسق هو مجرد Function<String, String>
، والتي تُرجع نسخة منسقة من مدخلاتها التي قد تكون غير منسقة.
من السهل إنشاء مثل هذه الوظيفة، ولكن هناك بعض الأخطاء والكثير من أعمال التكامل (الأسطر الجديدة، وترميزات الأحرف، والعجز، وتصعيد git، وتكامل نظام البناء). يتعامل Spotless مع هذه الأمور نيابةً عنك حتى تتمكن من التركيز على Function<String, String>
والتي يمكنها التأليف مع أي من التنسيقات الأخرى وبناء الأدوات في ترسانة Spotless .
الميزة / FormatterStep | gradle | مخضرم | sbt | (أداة البناء الخاصة بك هنا) |
---|---|---|---|---|
حماية العجز التلقائي | ؟ | ؟ | ؟ | ⬜ |
حماية الترميز التي تم تكوينها بشكل خاطئ | ؟ | ؟ | ؟ | ⬜ |
قم بالتبديل مع spotless:off spotless:on | ؟ | ؟ | ⬜ | ⬜ |
السقاطة من 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 | ؟ | ؟ | ⬜ | ⬜ |
(خطوة التنسيق الخاصة بك هنا) | ⬜ | ⬜ | ⬜ | ⬜ |
تصبح العديد من المشاريع أكثر صعوبة في العمل عليها عندما تكبر. أصبح العمل على Spotless أسهل من أي وقت مضى، وأحد أسباب ذلك هو أننا لا نطلب من المساهمين "ملء المصفوفة". إذا كنت ترغب في إضافة دعم Bazel، فيسعدنا أن نقبل العلاقات العامة حتى لو كان يدعم فقط المنسق الوحيد الذي تستخدمه. وإذا كنت ترغب في إضافة دعم FooFormatter، فسوف نقبل بكل سرور العلاقات العامة حتى لو كان يدعم فقط نظام البناء الوحيد الذي تستخدمه.
بمجرد قيام شخص ما بملء مربع واحد من مصفوفة المنسق/نظام البناء، فمن السهل على الأطراف المهتمة ملء أي مربعات فارغة، حيث سيكون لديك الآن مثال عملي لكل قطعة مطلوبة.
شكرًا لكونستانتين لوتوفيتش على تنفيذ وصيانة المكون الإضافي Maven، بالإضافة إلى إصلاح دعم ذاكرة التخزين المؤقت للإنشاء عن بُعد لـ Gradle.
شكرًا لـ Frank Vennemeyer على دعم Groovy عبر greclipse، ودعم C++ عبر CDT، ودعم XML عبر WTP ومجموعة ضخمة من العمل مع المنسقين الآخرين المستندين إلى Eclipse.
شكرًا لجوناثان بلويت دنكان على ذلك
تنفيذ فحص محدث رقم 31
اقتحام المكتبات الناصعة رقم 56
الكثير من الأشياء الأخرى، ولكن بشكل خاص دعم الفرق في spotlessCheck
تحسينات مستمرة على مجموعة متنوعة من المواضيع مع مراجعات الأكواد عالية الجودة
شكرًا لـ Daz DeBoer على إعادة صياغة المكونات الإضافية لـ Gradle لدعم ذاكرة التخزين المؤقت وInputChanges والتكوين البطيء.
شكرًا لريتشارد ويليس على إنشاء ملحق VS Code لـ Spotless Gradle.
شكرًا لـ Ryan Gurney لإنشاء البرنامج المساعد IntelliJ لـ Spotless Gradle.
شكرًا لماركوس هيبرلينج على إضافة المنسقات الأصلية العامة، ومنسقات jsr-223، والفرز المخضرم.
شكرًا لماتياس بالكي لإضافة الدعم لـ Antlr.
شكرًا لماتياس أندرياس بنكارد على إضافة الدعم لتنسيق google-java 1.8+ (#563)
شكرًا لتوماس بروير لإضافة الدعم لخيار تخطي إعادة تدفق السلاسل الطويلة في google-java-format.
شكرًا لـ Ranadeep Polovarapu على إضافة الدعم لـ ktfmt (#569)
شكرًا لـ Simon Gamma على إضافة دعم للتنسيقات المعتمدة على npm، بما في ذلك prettier
و tsfmt
مرتين.
شكرًا لـ Hakanai على إضافة الدعم الأخير لأحرف البدل إلى فارز الاستيراد.
شكرًا لكيفن بروكس لتحديث جميع التنسيقات المستندة إلى Eclipse إلى الإصدار 4.13 وإصلاح Groovy للمشاريع المتعددة.
شكرًا لـ Dylan Baroody لإصلاح دعم تنسيق SQL لمعلمات قائمة ربط JDBI.
شكرًا لـFigroc على إضافة دعم mavenCoerate المخصص إلى تنسيق google-java.
شكرًا لـ Thomas Glaeser لإيجاد وإصلاح خطأ خلل في أذونات الملفات.
بفضل Joan Goyeau لإصلاح تكامل scalafmt.
بفضل Nick Sutcliffe لإصلاح scalafmt post-2.0.
بفضل بابتيست ميستا ل
نقل منسق DBeaver إلى Spotless، وبفضل DBeaver ومؤلفيه على منسق SQL الممتاز الخاص بهم.
جعل رؤوس الترخيص على علم بالتاريخ #179
شكرًا لـ vmdominguez وLuis Fors على إضافة القدرة على قصر التنسيق على ملفات معينة في Gradle (#322) وMaven (#392)، على التوالي.
شكرًا لـbender316 لإصلاح تحميل الفصل في Java 9 (#426).
شكرًا لستيفان أوهمي على المساعدة الكبيرة في الميكانيكا الداخلية لـ Gradle.
شكرًا لـ eyalkaspi لإضافة نطاقات زمنية قابلة للتكوين إلى رؤوس الترخيص المدركة للتاريخ.
شكرًا لأندرو بارميت لإضافة دعم ktfmt لـ kotlin gradle.
شكرًا لأوليفر هورن لإضافة دعم AOSP لتكامل تنسيق google-java الخاص بـ Spotless.
التنسيق عن طريق الكسوف
شكر خاص لـ Mateusz Matela على التحسينات الهائلة التي أدخلها على منسق كود Eclipse!
شكرًا لـ Zac Sweers لإصلاح دعم ktlint 0.34+ المطلوب بشدة (#469)، وتحديثات البناء المتعددة وإصلاح تحذير إهمال Gradle (#434 وغيرها).
شكرًا لستيفن بانارو على إضافة الدعم لـ ktlint FilenameRule (#974).
شكرًا لنيلسون أوساكي على تحسينات مستندات Android وتحسين الإصدارات وتحسين البناء.
شكرًا لستانلي شيكو لمساعدته في دمج ktlint.
شكرًا لجوناثان Leitschuh لإضافة دعم ktlint لملفات Gradle Kotlin DSL.
متشعب في الأصل من البرنامج المساعد gradle-format-plugin بواسطة Youri Bonnaffé.
شكرًا لـ Ismaël Mejía على رفع مستوى Eclipse-jdt إلى 4.11. العلاقات العامة رقم 60.
شكرًا لجابور بيرنات على التحسينات التي أدخلت على التسجيل ودعم المشاريع المتعددة.
شكرًا لأوليفر زيمانسكي على نقل tsfmt وأجمل إلى المخضرم.
بفضل Andrew Oberstar لإدخال تحسينات على تنسيق مصدر Java في مجموعات مصادر غير Java. العلاقات العامة رقم 60.
شكرًا لسمير بالاسوبراهمانيام لإضافة الدعم للعناصر النائبة للسنة على طراز IntelliJ.
شكرًا لجيمي تانا على إضافة منسق JSON بسيط.
شكرًا لأديب صيقلي وبول ميرلين على تعقب السبب الصعب للرقم 506.
استيراد الطلب من EclipseCodeFormatter.
تم بناؤه بواسطة gradle.
تم اختباره بواسطة جونيت.
تتم صيانته بواسطة DiffPlug.