commit | 969e142daaa75a2a192f1086984609fcbb7ae654 | [log] [tgz] |
---|---|---|
author | Mark Renouf <mrenouf@google.com> | Tue Apr 09 09:51:16 2024 -0400 |
committer | Mark Renouf <mrenouf@google.com> | Tue Apr 09 15:16:06 2024 +0000 |
tree | 155230ea8546c495dc76833b84e04962c698270b | |
parent | c31c5bf0dce5eb6de8a64b973393bf2ee2027297 [diff] |
Fix import order disagreement (kotlinx) For checkstyle, 'kotlinx' is not specified, meaning it is expected at the end, in alphabetical order with all other imports which lack a defined ordering. This disagrees with google-java-formatter and all IDE code formatter configurations in use. This leads to confusion, manual correction or in many cases ignored checkstyle warnings. This is in part due to unhelpful checkstyle output: Given: import kotlin.Pair; import kotlinx.coroutines.CoroutineDispatcher; import java.util.ArrayList; import java.util.Arrays; Checkstyle reports: .../Foo.java:16:1: Wrong order for java.util.ArrayList import. Use Ctrl+Shift+O (Eclipse) or Ctrl+Alt+O (Intellij) to sort imports. https://source.android.com/setup/code-style#order-import-statements Bug: 333533940 Test: manual Change-Id: Ife87e1f92bdc620031cf2e90add6b688aef8b5ef
Checkstyle is used by developers to validate Java code style and formatting, and can be run as part of the pre-upload hooks.
It can be invoked in two ways.
checkstyle.py -f FILE [FILE ...]
checkstyle.py
A development tool to help programmers write Java code that adheres to a coding standard.
Git-lint is a tool to run lint checks on only files changed in the latest commit.
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.
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.