summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Demeulenaere <jdemeulenaere@google.com>2022-10-06 18:23:29 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-10-06 18:23:29 +0000
commit430ed10b21872a5bb6637206136cb9f560c85b2b (patch)
treee3c0ed650383fb7e5ac5731d0e68efaae0e36aee
parent080abfae72c20a9b1a90b1ab98f17712d1bc0c62 (diff)
parent3f02d12653c7b7cce97a9d8d66cec453adbd0f4a (diff)
downloadktlint-430ed10b21872a5bb6637206136cb9f560c85b2b.tar.gz
Allow preupload hooks to ignore more formatting ktlint rules am: aa768f01db am: 3f02d12653
Original change: https://googleplex-android-review.googlesource.com/c/platform/prebuilts/ktlint/+/20120322 Change-Id: Id40c7a4fd5aab6c5d753150a2d3e3d3d6e2e7ff5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--.editorconfig6
-rwxr-xr-xktlint.py16
2 files changed, 14 insertions, 8 deletions
diff --git a/.editorconfig b/.editorconfig
index e97aa07..1e3f51c 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -4,9 +4,3 @@ max_line_length = 100
trim_trailing_whitespace = true
insert_final_newline = true
ij_kotlin_imports_layout=*
-
-# Comma-separated list of rules to disable
-# ktlint disagrees on indentation with ktfmt in some cases
-# TODO(b/185904220): paren spacing disabled because of a ktfmt bug
-# TODO(b/189506168): curly spacing disabled because of a ktfmt bug
-disabled_rules=indent,paren-spacing,curly-spacing,wrapping
diff --git a/ktlint.py b/ktlint.py
index 86b15ed..aefff63 100755
--- a/ktlint.py
+++ b/ktlint.py
@@ -42,14 +42,25 @@ def main(args=None):
parser.add_argument('--file', '-f', nargs='*')
parser.add_argument('--format', '-F', dest='format', action='store_true')
parser.add_argument('--noformat', dest='format', action='store_false')
- parser.set_defaults(format=False)
+ parser.add_argument('--no-verify-format', dest='verify_format', action='store_false')
+ parser.set_defaults(format=False, verify_format=True)
args = parser.parse_args()
kt_files = [f for f in args.file if f.endswith('.kt') or f.endswith('.kts')]
if not kt_files:
sys.exit(0)
+ disabled_rules = ['indent', 'paren-spacing', 'curly-spacing', 'wrapping']
+
+ # Disable more format-related rules if we shouldn't verify the format. This is usually
+ # the case if files we are checking are already checked by ktfmt.
+ if not args.verify_format:
+ disabled_rules += ['final-newline', 'no-consecutive-blank-lines', 'import-ordering']
+
ktlint_args = kt_files[:]
ktlint_args += ['--editorconfig', EDITOR_CONFIG]
+ ktlint_args += ['--disabled_rules=' + ','.join(disabled_rules)]
+
+ # Automatically format files if requested.
if args.format:
ktlint_args += ['-F']
@@ -64,7 +75,8 @@ def main(args=None):
if stdout:
print('prebuilts/ktlint found errors in files you changed:')
print(stdout.decode('utf-8'))
- print(FORMAT_MESSAGE.format(MAIN_DIRECTORY, ' '.join(kt_files)))
+ if (args.verify_format):
+ print(FORMAT_MESSAGE.format(MAIN_DIRECTORY, ' '.join(kt_files)))
sys.exit(1)
else:
sys.exit(0)