Mark experimental rules using interface "Rule.Experimental"

* Add interface "Rule.Experimental" to mark a rule as an experimental rule. This allows experimental rules to be defined in any rule set. Whenever a rule is no longer experimental it does not need to be moved to a non-experimental rule set. Benefit is that users of that rule, do not need to change ktlint disable directives.

* Merge `experimental` ruleset with `standard` ruleset.

* Rearrange standard rules to separate package

* Simplify code by moving logic from QualifiedRuleId to Rule. All logic regarding qualified rule (set) id is now kept together in once class.
180 files changed
tree: 34f271665998f1b5532828f8f2ab14114d1559eb
  1. .github/
  2. build-logic/
  3. docs/
  4. gradle/
  5. ktlint/
  6. ktlint-api-consumer/
  7. ktlint-core/
  8. ktlint-reporter-baseline/
  9. ktlint-reporter-checkstyle/
  10. ktlint-reporter-format/
  11. ktlint-reporter-html/
  12. ktlint-reporter-json/
  13. ktlint-reporter-plain/
  14. ktlint-reporter-plain-summary/
  15. ktlint-reporter-sarif/
  16. ktlint-ruleset-experimental/
  17. ktlint-ruleset-standard/
  18. ktlint-ruleset-template/
  19. ktlint-ruleset-test/
  20. ktlint-test/
  21. ktlint-test-logging/
  22. .announce
  23. .editorconfig
  24. .gitattributes
  25. .gitignore
  26. .homebrew
  27. ADOPTERS.md
  28. build.gradle.kts
  29. CHANGELOG.md
  30. CODE_OF_CONDUCT.md
  31. CONTRIBUTING.md
  32. gradle.properties
  33. gradlew
  34. gradlew.bat
  35. jitpack.yml
  36. LICENSE
  37. mkdocs.yml
  38. README.md
  39. RELEASE_TESTING.MD
  40. RELEASING.md
  41. run-mkdocs-server.sh
  42. settings.gradle.kts
README.md

Key features

  • No configuration required
  • Built-in Rule sets
  • Built-in formatter
  • .editorconfig support
  • Several built-in reporters: plain, json, html and checkstyle
  • Executable jar
  • Allows extension with custom rule sets and reporters

Documentation

User guide

Legal

This project is not affiliated with nor endorsed by JetBrains.
All code, unless specified otherwise, is licensed under the MIT license.
Copyright (c) 2019 Pinterest, Inc.
Copyright (c) 2016-2019 Stanley Shyiko.