google / google-java-format

Reformats Java source code to comply with Google Java Style.
Other
5.49k stars 848 forks source link

Support overlapping --lines ranges in google-java-format. #1093

Closed copybara-service[bot] closed 3 months ago

copybara-service[bot] commented 3 months ago

Support overlapping --lines ranges in google-java-format.

The strict behavior comes from the underlying ImmutableRangeSet.Builder class, which does not allow overlapping ranges to be added. Let's use TreeRangeSet instead.

I have also updated the documentation for the --lines flag to make it clear that the line numbers are a closed-closed interval.

Tested with:

blaze run :google_java_format_binary -- --lines=1:5 --lines=3:8 - < Foo.java

Before this CL the command fails with:

'--lines=1:5' '--lines=3:8' -
Overlapping ranges not permitted but found [0..5) overlapping [2..8)

After this CL the command succeeds.