Clone this repo:
  1. 8531c66 Add `platform` to checkstyle import order am: 5b8d0f2d74 by David Saff · 6 weeks ago main master
  2. 5b8d0f2 Add `platform` to checkstyle import order by David Saff · 6 weeks ago
  3. 5656e34 Add de to import groups am: d19e2b543f by Jeremy Bettis · 6 weeks ago
  4. d19e2b5 Add de to import groups by Jeremy Bettis · 6 weeks ago
  5. cf98c77 Allow "$ravenwood" to be a method name suffix am: 7071470e06 am: 42ef477f7b by Makoto Onuki · 8 months ago android15-automotiveos-dev android15-qpr1-release android15-qpr1-s3-release android15-qpr1-s4-release android15-qpr1-s5-release android15-tests-dev androidx-constraintlayout-release androidx-main android-15.0.0_r10 android-15.0.0_r11 android-15.0.0_r12 android-15.0.0_r13 android-15.0.0_r6 android-15.0.0_r7 android-15.0.0_r8 android-15.0.0_r9 ub-automotive-master-20240924 ub-automotive-master-20241205

Checkstyle

Checkstyle is used by developers to validate Java code style and formatting, and can be run as part of the pre-upload hooks.

Running it

It can be invoked in two ways.

  1. To check style of entire specific files: checkstyle.py -f FILE [FILE ...]
  2. To check style of the lines modified in the latest commit: checkstyle.py

Projects used

Checkstyle

A development tool to help programmers write Java code that adheres to a coding standard.

Git-Lint

Git-lint is a tool to run lint checks on only files changed in the latest commit.

  • URL: https://github.com/sk-/git-lint/
  • Version: 0.0.8
  • License: Apache 2.0
  • License File: gitlint/LICENSE
  • Local Modifications:
    • Downloaded gitlint/git.py and git/utils.py files individually.

Pre-upload linting

To run checkstyle as part of the pre-upload hooks, add the following line to your PREUPLOAD.cfg:

checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}

Note that checkstyle does not always agree with clang-format, and so it's best to only have one enabled for Java.

Disabling Clang Format for Java

In .clang-format add the following to disable format checking and correcting for Java:

---
Language: Java
DisableFormat: true
SortIncludes: false
---

In some versions of clang-format, DisableFormat doesn't stop the sorting of includes. So to fully disable clang-format from doing anything for Java files, both options are needed.