Skip to content

Commit 5cd320c

Browse files
nreid260google-java-format Team
authored and
google-java-format Team
committed
Support multiline tokens in GJF-core
Cursory perf measurements show no detectable cost from scanning every token. If one should be discovered later, we can add guards to only scan potentially multiline tokens. PiperOrigin-RevId: 620285981
1 parent 3167818 commit 5cd320c

File tree

1 file changed

+7
-3
lines changed
  • core/src/main/java/com/google/googlejavaformat

1 file changed

+7
-3
lines changed

core/src/main/java/com/google/googlejavaformat/Doc.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,10 @@ boolean isReal() {
397397
private final Indent plusIndentCommentsBefore;
398398
private final Optional<Indent> breakAndIndentTrailingComment;
399399

400+
private Input.Tok tok() {
401+
return token.getTok();
402+
}
403+
400404
private Token(
401405
Input.Token token,
402406
RealOrImaginary realOrImaginary,
@@ -465,7 +469,8 @@ public void add(DocBuilder builder) {
465469

466470
@Override
467471
int computeWidth() {
468-
return token.getTok().length();
472+
int idx = Newlines.firstBreak(tok().getOriginalText());
473+
return (idx >= 0) ? MAX_LINE_WIDTH : tok().length();
469474
}
470475

471476
@Override
@@ -480,8 +485,7 @@ Range<Integer> computeRange() {
480485

481486
@Override
482487
public State computeBreaks(CommentsHelper commentsHelper, int maxWidth, State state) {
483-
String text = token.getTok().getOriginalText();
484-
return state.withColumn(state.column + text.length());
488+
return state.withColumn(state.column + computeWidth());
485489
}
486490

487491
@Override

0 commit comments

Comments
 (0)