You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
# Checkstyle
|
|
|
|
Checkstyle is used by developers to validate Java code style and formatting,
|
|
and can be run as part of the pre-upload hooks.
|
|
|
|
[TOC]
|
|
|
|
## 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.
|
|
|
|
* URL: https://checkstyle.sourceforge.io/
|
|
* Version: 7.4-SNAPSHOT
|
|
* License: LGPL 2.1
|
|
* License File: LICENSE
|
|
* Source repo: https://android.googlesource.com/platform/external/checkstyle
|
|
|
|
### 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.
|