summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2023-03-13 23:11:34 -0700
committerXin Li <delphij@google.com>2023-03-13 23:11:34 -0700
commit8ff596280cb5bf8cfe386d9dffd8d8ad5e3276bc (patch)
treee3c0ed650383fb7e5ac5731d0e68efaae0e36aee
parent2ace708d3b4d05e02a21aff22fa4cd79a3259eb8 (diff)
parentf28ac203169c364c0fad84269b8dacac4041936d (diff)
downloadktlint-8ff596280cb5bf8cfe386d9dffd8d8ad5e3276bc.tar.gz
Bug: 273316506 Merged-In: I324bcaf4e9e2b087201810343471a55f2434339f Change-Id: I0c8c3ac0a14857601ad10bb17011e62bae2d3c82
-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)