From 0d1c53e5da3e3690346c31d889f28e21b9b2f8f8 Mon Sep 17 00:00:00 2001 From: Henrique Ferreiro Date: Wed, 16 Sep 2026 14:53:17 +0200 Subject: [PATCH] Add --google-style to select Google Style --aosp was the only style switch, with no way to select Google Style once it had been passed. Wrapper scripts such as Chromium's google-java-format launcher append --aosp unconditionally, leaving projects that format through them no way to opt back into Google Style. Add a --google-style flag, and allow overriding a previously given style. When both --aosp and --google-style are given, the last one wins. --- .../java/CommandLineOptionsParser.java | 1 + .../googlejavaformat/java/UsageException.java | 3 +++ .../java/CommandLineOptionsParserTest.java | 14 ++++++++++++++ 3 files changed, 18 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..9674a14a1 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java +++ b/core/src/main/java/com/google/googlejavaformat/java/CommandLineOptionsParser.java @@ -71,6 +71,7 @@ static CommandLineOptions parse(Iterable options) { parseRangeSet(linesBuilder, getValue(flag, it, value)); case "--offset", "-offset" -> optionsBuilder.addOffset(parseInteger(it, flag, value)); case "--length", "-length" -> optionsBuilder.addLength(parseInteger(it, flag, value)); + case "--google-style", "-google-style" -> optionsBuilder.aosp(false); case "--aosp", "-aosp", "-a" -> optionsBuilder.aosp(true); case "--version", "-version", "-v" -> optionsBuilder.version(true); case "--help", "-help", "-h" -> optionsBuilder.help(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..04652e1b0 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/UsageException.java +++ b/core/src/main/java/com/google/googlejavaformat/java/UsageException.java @@ -34,6 +34,9 @@ final class UsageException extends Exception { Format stdin -> stdout --assume-filename, -assume-filename File name to use for diagnostics when formatting standard input (default is ). + --google-style, -google-style + Use Google Style (2-space indentation). This is the default; if both --aosp and + --google-style are given, the last one wins. --aosp, -aosp, -a Use AOSP style instead of Google Style (4-space indentation). --fix-imports-only 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..fd88a6d6b 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,20 @@ public void aosp() { assertThat(CommandLineOptionsParser.parse(Arrays.asList("-aosp")).aosp()).isTrue(); } + @Test + public void googleStyle() { + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--google-style")).aosp()).isFalse(); + assertThat(CommandLineOptionsParser.parse(Arrays.asList("-google-style")).aosp()).isFalse(); + } + + @Test + public void lastStyleWins() { + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--aosp", "--google-style")).aosp()) + .isFalse(); + assertThat(CommandLineOptionsParser.parse(Arrays.asList("--google-style", "--aosp")).aosp()) + .isTrue(); + } + @Test public void help() { assertThat(CommandLineOptionsParser.parse(Arrays.asList("-help")).help()).isTrue();