Skip to content

Commit

Permalink
Fixing duplicate search markers in javaDocs (#4503)
Browse files Browse the repository at this point in the history
When running the "FindTypes" recipe we are getting duplicate search markers being added to the result. We should only be printing one.
  • Loading branch information
lkerford authored Sep 19, 2024
1 parent bb228bf commit 956fa7a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -425,4 +425,36 @@ class B {
java(a1)
);
}

@Test
void javadocComment() {

rewriteRun(
spec -> spec.recipe(new FindTypes("java.lang.String", true)),
java(
"""
public class A {
/**
* JavaDoc comment with {{@link String#trim()}}
* JavaDoc comment with String#trim()
*/
public static String replaceFoo(String string) {
return string.replaceAll("foo", "bar");
}
}
""",
"""
public class A {
/**
* JavaDoc comment with {{@link ~~>String#trim()}}
* JavaDoc comment with String#trim()
*/
public static /*~~>*/String replaceFoo(/*~~>*/String string) {
return string.replaceAll("foo", "bar");
}
}
"""
)
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -464,18 +464,6 @@ public Space visitSpace(Space space, Space.Location loc, PrintOutputCapture<P> p
return space;
}

@Override
public <M extends Marker> M visitMarker(Marker marker, PrintOutputCapture<P> p) {
if (marker instanceof SearchResult) {
String description = ((SearchResult) marker).getDescription();
p.append("~~")
.append(description == null ? "" : "(" + description + ")~~")
.append(">");
}
//noinspection unchecked
return (M) marker;
}

private void visitLineBreak(Javadoc.LineBreak lineBreak, PrintOutputCapture<P> p) {
beforeSyntax(Space.EMPTY, lineBreak.getMarkers(), null, p);
p.append(lineBreak.getMargin());
Expand Down

0 comments on commit 956fa7a

Please sign in to comment.