philipp-paland / spotless

Keep your code spotless with Gradle

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spotless: Keep your code spotless

Travis CI Live chat License Apache

Spotless can format <java | markdown | license headers | anything> using <gradle | maven | anything>.

Ideally, a code formatter can do more than just find formatting errors - it should fix them as well. Such a formatter is really just a Function<String, String>, which returns a formatted version of its potentially unformatted input.

It's easy to build such a function, but there are some gotchas and lots of integration work (newlines, character encodings, idempotency, and build-system integration). Spotless tackles those for you so you can focus on just a simple Function<String, String> which can compose with any of the other formatters and build tools in Spotless' arsenal.

Current feature matrix

Feature / FormatterStep plugin-gradle plugin-maven (Your build tool here)
generic.EndWithNewlineStep πŸ‘ ⬜ ⬜
generic.IndentStep πŸ‘ ⬜ ⬜
generic.LicenseHeaderStep πŸ‘ ⬜ ⬜
generic.ReplaceRegexStep πŸ‘ ⬜ ⬜
generic.ReplaceStep πŸ‘ ⬜ ⬜
generic.TrimTrailingWhitespaceStep πŸ‘ ⬜ ⬜
java.GoogleJavaFormatStep πŸ‘ ⬜ ⬜
java.ImportOrderStep πŸ‘ ⬜ ⬜
java.EclipseFormatterStep πŸ‘ ⬜ ⬜
kotlin.KtLintStep πŸ‘ ⬜ ⬜
markdown.FreshMarkStep πŸ‘ ⬜ ⬜
scala.ScalaFmtStep πŸ‘ ⬜ ⬜
(Your FormatterStep here) ⬜ ⬜ ⬜
Fast up-to-date checking πŸ‘ ⬜ ⬜
Automatic idempotency safeguard πŸ‘ ⬜ ⬜

Acknowledgements

  • Huge thanks to Jonathan Bluett-Duncan for
    • implementing up-to-date checking #31
    • breaking spotless into libraries #56
    • lots of other things, but especially the diff support in spotlessCheck
  • Huge thanks to Stefan Oehme for tons of help on the internal mechanics of Gradle.
  • Formatting by Eclipse
    • Special thanks to Mateusz Matela for huge improvements to the eclipse code formatter!
  • Thanks to Stanley Shyiko for his help integrating ktlint.
  • Originally forked from gradle-format-plugin by Youri BonnaffΓ©.
  • Thanks to GΓ‘bor BernΓ‘t for improvements to logging and multi-project support.
  • Thanks to Andrew Oberstar for improvements to formatting java source in non-java source sets. PR #60.
  • Import ordering from EclipseCodeFormatter.
  • Built by gradle.
  • Tested by junit.
  • Maintained by DiffPlug.

About

Keep your code spotless with Gradle

License:Apache License 2.0


Languages

Language:Java 99.8%Language:Shell 0.2%