Skip to content

Update dependency com.google.googlejavaformat:google-java-format to v2 - #227

Merged
JakeWharton merged 2 commits into
trunkfrom
renovate/com.google.googlejavaformat-google-java-format-2.x
Nov 6, 2026
Merged

JakeWharton merged 2 commits into
trunkfrom
renovate/com.google.googlejavaformat-google-java-format-2.x

Conversation

@renovate

@renovate renovate Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
com.google.googlejavaformat:google-java-format 1.36.1 → 2.0.0 age confidence

Release Notes

google/google-java-format (com.google.googlejavaformat:google-java-format)

v2.0.0

Compare Source

google-java-format 2.0.0 replaces the formatter's layout engine, and makes some improvements to lambda formatting (#​19). This release also adds an optional cleanup pass that makes small non-whitespace changes, which is enabled by default.

Because of these changes, 2.0.0 reformats more existing code than a typical release. We recommend reformatting your codebase in a single commit when upgrading.

Formatting changes

  • A lambda that is the only argument of a call is now kept on the same line as the call, instead of starting on a new line with an extra level of indentation (#​19):

    executor.submit(() -> {
      doSomething();
    });
  • Text blocks are now indented as part of the main formatting pass, so their indentation is correct even with --skip-reflowing-long-strings.

  • Fixed indentation of comments after assert, enum constants, for initializers, try resources, multi-catch clauses, and type arguments.

Cleanups

  • Added a --cleanup flag, enabled by default, for small non-whitespace changes:

    • removing redundant semicolons
    • removing empty annotation parentheses (@Foo() → @Foo)
    • removing parentheses around a single untyped lambda parameter ((x) -> ... → x -> ...) (#​762)

    Cleanups only apply to the ranges being formatted. Use --cleanup=false to only change whitespace (and the existing --skip-sorting-imports, --skip-removing-unused-imports, and --skip-reordering-modifiers flags for the other non-whitespace changes).

  • When formatting a range with --lines or --offset and cleanups enabled, unformatted statements outside the range are re-indented to match the formatted output, so an edit that adds or removes a level of nesting doesn't leave the surrounding code misaligned. Blank lines left behind by cleanups are removed.

Configuration

  • --max-line-length=N sets the column limit (default 100) (#​425). (This flag was introduced in v1.37.0)

Language support

Javadoc

  • Strip trailing asterisks before */ (#​67).
  • Preserve relative indentation in <pre>{@code ...} blocks without leading *.
  • Join hyphenated words broken across lines.

Long strings

  • When formatting a range with --lines or --offset, only long string literals in the requested range are reflowed (#​1114).
  • Escaped backslashes (e.g. \\t in a Windows path or a regular expression) are no longer split when reflowing long string literals (#​1186, #​1253, #​1439).
  • Failures while reflowing long strings are reported as errors instead of crashing or hanging the CLI (#​1439).

Other fixes

  • Fixed formatting in the Eclipse plugin, which failed with NoClassDefFoundError since 1.36.0 because the plugin didn't bundle commonmark (#​1428).
  • The error for combining --dry-run with --replace now names the right flag (#​1094).

API changes

  • JavaFormatterOptions.Builder.cleanup(boolean) controls the new cleanup pass, and defaults to true. This means Formatter.formatSource now makes the non-whitespace changes listed above by default. Integrations that format code the user is editing, e.g. format-on-save in an IDE, should set cleanup(false); the IntelliJ plugin does this.
  • Formatter.getFormatReplacements is now strictly whitespace-only: it no longer reorders modifiers, and never applies cleanups. Use Formatter.formatSource(String, Collection<Range<Integer>>) to format character ranges with modifier reordering.
  • JavaFormatterOptions.Style became a record in 1.37.0. The enum-compatible methods, such as Style.valueOf(String), have been restored for tools like Spotless that called them (#​1478).
  • The previous layout engine's classes (com.google.googlejavaformat.Doc, OpsBuilder, and related types) are no longer used to format Java, but are still included for other formatters that build on them.

Full Changelog: google/google-java-format@v1.37.0...v2.0.0

v1.37.0

Changes:

  • Add a --max-line-length flag (#​425)
  • Markdown javadoc formatting improvements (c51d691, ecba4fb)
  • Add --google-style and --style=google|aosp flags for easier switching between Google and AOSP style (#​1415)

Full Changelog: google/google-java-format@v1.36.1...v1.37.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@JakeWharton
JakeWharton enabled auto-merge (squash) November 6, 2026 18:43
@JakeWharton
JakeWharton merged commit c56b55b into trunk Nov 6, 2026
2 checks passed
@JakeWharton
JakeWharton deleted the renovate/com.google.googlejavaformat-google-java-format-2.x branch November 6, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant