Skip to content

Commit 0e507b1

Browse files
committed
Chomp kotlin suppress annotations
Closes gh-57
1 parent d2d09fa commit 0e507b1

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

src/main/java/io/spring/asciidoctor/backend/codetools/ChompListingContentConverter.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.spring.asciidoctor.backend.codetools;
1818

1919
import java.util.ArrayList;
20+
import java.util.Collections;
2021
import java.util.List;
2122
import java.util.regex.Matcher;
2223
import java.util.regex.Pattern;
@@ -190,20 +191,35 @@ public String chomp(String content) {
190191

191192
private static class SuppressWarningsChomper implements Chomper {
192193

194+
private static final List<Pattern> PATTERNS;
195+
static {
196+
List<Pattern> patterns = new ArrayList<>();
197+
patterns.add(Pattern.compile("@SuppressWarnings\\(.*\\)"));
198+
patterns.add(Pattern.compile("@Suppress\\(.*\\)"));
199+
PATTERNS = Collections.unmodifiableList(patterns);
200+
}
201+
193202
@Override
194203
public String chomp(String content) {
195204
StringBuilder result = new StringBuilder(content.length());
196205
String[] lines = content.split("\n");
197206
for (String line : lines) {
198-
String updatedline = line.replaceAll("@SuppressWarnings\\(.*\\)", "");
199-
if (updatedline.equals(line) || !updatedline.trim().isEmpty()) {
200-
result.append(updatedline);
207+
String strippedline = strip(line);
208+
if (strippedline.equals(line) || !strippedline.trim().isEmpty()) {
209+
result.append(strippedline);
201210
result.append("\n");
202211
}
203212
}
204213
return result.toString();
205214
}
206215

216+
private String strip(String line) {
217+
for (Pattern pattern : PATTERNS) {
218+
line = pattern.matcher(line).replaceAll("");
219+
}
220+
return line;
221+
}
222+
207223
}
208224

209225
}

src/main/java/io/spring/asciidoctor/backend/codetools/ChompOption.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ enum ChompOption {
4444
FORMATTERS,
4545

4646
/**
47-
* Chomp {@code @SuppressWarnings} annotation.
47+
* Chomp {@code @SuppressWarnings} and {@code Suppress} annotations.
4848
*/
4949
SUPPRESSWARNINGS;
5050

src/test/resources/io/spring/asciidoctor/backend/codetools/ChompListingContentConverterTests_convertWhenSuppressWarningsChompReturnsChompedLines.adoc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
public class Example {
77
88
@SuppressWarnings("unused")
9-
private String field;
9+
private String field1;
10+
11+
@Suppress("unused")
12+
private String field2;
1013
1114
}
1215
----
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
public class Example {
22

3-
private String field;
3+
private String field1;
4+
5+
private String field2;
46

57
}

0 commit comments

Comments
 (0)