From 06a71136eec496978270152cc476f1b2d508448d Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Mon, 13 Jul 2026 11:29:07 +0200 Subject: [PATCH] Add --no-aosp flag to select Google Style --aosp is the only style switch, with no way to negate it once passed. Wrapper scripts such as Chromium's google-java-format launcher append --aosp unconditionally, leaving projects that format through them no way to select Google Style. Add a --no-aosp flag to allow overriding a previously given style flag. When both are given, the last one wins. --- .../googlejavaformat/java/CommandLineOptionsParser.java | 1 + .../com/google/googlejavaformat/java/UsageException.java | 3 +++ .../java/CommandLineOptionsParserTest.java | 9 +++++++++ 3 files changed, 13 insertions(+) diff --git a/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java b/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java index fddf9be8a..42826bbec 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java +++ b/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java @@ -72,6 +72,7 @@ static CommandLineOptions parse(Iterable options) { case "--offset", "-offset" -> optionsBuilder.addOffset(parseInteger(it, flag, value)); case "--length", "-length" -> optionsBuilder.addLength(parseInteger(it, flag, value)); case "--aosp", "-aosp", "-a" -> optionsBuilder.aosp(true); + case "--no-aosp", "-no-aosp" -> optionsBuilder.aosp(false); case "--version", "-version", "-v" -> optionsBuilder.version(true); case "--help", "-help", "-h" -> optionsBuilder.help(true); case "--fix-imports-only" -> optionsBuilder.fixImportsOnly(true); diff --git a/core/src/main/java/com/google/googlejavaformat/java/UsageException.java b/core/src/main/java/com/google/googlejavaformat/java/UsageException.java index f9c2eb80d..8bfced025 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/UsageException.java +++ b/core/src/main/java/com/google/googlejavaformat/java/UsageException.java @@ -36,6 +36,9 @@ final class UsageException extends Exception { File name to use for diagnostics when formatting standard input (default is ). --aosp, -aosp, -a Use AOSP style instead of Google Style (4-space indentation). + --no-aosp, -no-aosp + Use Google Style (2-space indentation). If both --aosp and --no-aosp are given, the last + one wins. --fix-imports-only Fix import order and remove any unused imports, but do no other formatting. --skip-sorting-imports diff --git a/core/src/test/java/com/google/googlejavaformat/java/CommandLineOptionsParserTest.java b/core/src/test/java/com/google/googlejavaformat/java/CommandLineOptionsParserTest.java index 3c0605823..dc68b4626 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/CommandLineOptionsParserTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/CommandLineOptionsParserTest.java @@ -77,6 +77,15 @@ public void aosp() { assertThat(CommandLineOptionsParser.parse(Arrays.asList("-aosp")).aosp()).isTrue(); } + @Test + public void noAosp() { + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--no-aosp")).aosp()).isFalse(); + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--aosp", "--no-aosp")).aosp()) + .isFalse(); + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--no-aosp", "--aosp")).aosp()) + .isTrue(); + } + @Test public void help() { assertThat(CommandLineOptionsParser.parse(Arrays.asList("-help")).help()).isTrue();