Skip to content

Commit 84bb14e

Browse files
committed
do not same range parse problems
1 parent 09fd36b commit 84bb14e

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

libs/javavi/src/main/java/kg/ash/javavi/actions/ImportsAction.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package kg.ash.javavi.actions;
22

3+
import com.github.javaparser.Range;
34
import com.github.javaparser.ast.CompilationUnit;
4-
import kg.ash.javavi.readers.source.ClassNamesFetcher;
5-
import kg.ash.javavi.readers.source.CompilationUnitCreator;
6-
import kg.ash.javavi.readers.source.CompilationUnitResult;
75

86
import java.io.UnsupportedEncodingException;
97
import java.util.Base64;
8+
import java.util.HashSet;
9+
import java.util.Optional;
1010
import java.util.Set;
1111

12+
import kg.ash.javavi.readers.source.ClassNamesFetcher;
13+
import kg.ash.javavi.readers.source.CompilationUnitCreator;
14+
import kg.ash.javavi.readers.source.CompilationUnitResult;
15+
1216
public abstract class ImportsAction implements Action {
1317

1418
protected Set<String> classnames;
@@ -29,10 +33,18 @@ public String perform(String[] args) {
2933
} else if (compilationUnitResult.getProblems() != null) {
3034
StringBuilder result =
3135
new StringBuilder("{'parse-problems':[");
36+
Set<Range> ranges = new HashSet<>();
3237
compilationUnitResult.getProblems().stream().forEach(p -> {
33-
result.append("{'message':'").append(p.getMessage()).append("'");
34-
result.append(",'lnum':'").append(p.getLocation().get().getBegin().getRange().get().begin.line).append("'");
35-
result.append(",'col':'").append(p.getLocation().get().getBegin().getRange().get().begin.column).append("'},");
38+
p.getLocation().get().getBegin().getRange()
39+
.filter(range -> !ranges.contains(range))
40+
.ifPresent(range -> {
41+
result.append("{'message':'").append(p.getMessage()).append("'");
42+
result.append(",'lnum':'")
43+
.append(range.begin.line).append("'");
44+
result.append(",'col':'")
45+
.append(range.begin.column).append("'},");
46+
ranges.add(range);
47+
});
3648
});
3749
return result.append("]}").toString();
3850
} else {

0 commit comments

Comments
 (0)