Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit 6aa2abc

Browse files
authored
Merge pull request #19 from snyk/feat/markers-to-outer-file-support
feat: markers leading to outer files support
2 parents ad9d402 + 7c963b9 commit 6aa2abc

File tree

5 files changed

+38
-12
lines changed

5 files changed

+38
-12
lines changed

src/main/java/ai/deepcode/javaclient/core/AnalysisDataBase.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,12 @@ private Map<Object, List<SuggestionForFile>> parseGetAnalysisResponse(
694694
new MyTextRange(marker.getMsg().get(0), marker.getMsg().get(1) + 1);
695695
final List<MyTextRange> positions =
696696
marker.getPos().stream()
697-
.map(it -> parsePosition2MyTextRange(it, file, Collections.emptyMap()))
697+
.map(it -> {
698+
final Object fileForMarker = (it.getFile() == null || it.getFile().isEmpty())
699+
? file
700+
: pdUtils.getFileByDeepcodedPath(it.getFile(), project);
701+
return parsePosition2MyTextRange(it, fileForMarker, Collections.emptyMap());
702+
})
698703
.filter(Objects::nonNull)
699704
.collect(Collectors.toList());
700705
markers.put(msgRange, positions);
@@ -752,7 +757,8 @@ private MyTextRange parsePosition2MyTextRange(
752757
endRow,
753758
startCol,
754759
endCol,
755-
markers);
760+
markers,
761+
position.getFile());
756762
}
757763

758764
private FileContent createFileContent(Object file) {

src/main/java/ai/deepcode/javaclient/core/MyTextRange.java

+15-8
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,17 @@ public class MyTextRange {
1313
private final int endCol;
1414
// msg range poses in source file
1515
private final Map<MyTextRange, List<MyTextRange>> markers;
16+
private final String file;
1617

1718
MyTextRange(
18-
int start,
19-
int end,
20-
int startRow,
21-
int endRow,
22-
int startCol,
23-
int endCol,
24-
Map<MyTextRange, List<MyTextRange>> markers) {
19+
int start,
20+
int end,
21+
int startRow,
22+
int endRow,
23+
int startCol,
24+
int endCol,
25+
Map<MyTextRange, List<MyTextRange>> markers,
26+
String file) {
2527

2628
this.start = start;
2729
this.end = end;
@@ -30,10 +32,11 @@ public class MyTextRange {
3032
this.startCol = startCol;
3133
this.endCol = endCol;
3234
this.markers = markers;
35+
this.file = file;
3336
}
3437

3538
MyTextRange(int start, int end) {
36-
this(start, end, -1, -1, -1, -1, Collections.emptyMap());
39+
this(start, end, -1, -1, -1, -1, Collections.emptyMap(), null);
3740
}
3841

3942
public int getStart() {
@@ -63,4 +66,8 @@ public int getEndCol() {
6366
public Map<MyTextRange, List<MyTextRange>> getMarkers() {
6467
return markers;
6568
}
69+
70+
public String getFile() {
71+
return file;
72+
}
6673
}

src/main/java/ai/deepcode/javaclient/core/PlatformDependentUtilsBase.java

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ public String getDeepCodedFilePath(@NotNull Object file) {
4040
@NotNull
4141
protected abstract String getProjectBasedFilePath(@NotNull Object file);
4242

43+
public abstract Object getFileByDeepcodedPath(String path, Object project);
44+
4345
public abstract Object[] getOpenProjects();
4446
// ProjectManager.getInstance().getOpenProjects()
4547

src/main/java/ai/deepcode/javaclient/responses/MarkerPosition.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ public class MarkerPosition implements Position {
66

77
private List<Integer> rows;
88
private List<Integer> cols;
9+
private String file;
910

10-
public MarkerPosition(List<Integer> rows, List<Integer> cols) {
11+
public MarkerPosition(List<Integer> rows, List<Integer> cols, String file) {
1112
super();
1213
this.rows = rows;
1314
this.cols = cols;
15+
this.file = file;
1416
}
1517

1618
@Override
@@ -25,6 +27,11 @@ public List<Integer> getCols() {
2527

2628
@Override
2729
public String toString() {
28-
return "marker range: rows: " + rows + " cols: " + cols;
30+
return "marker range: rows: " + rows + " cols: " + cols+ " file: " + file;
31+
}
32+
33+
@Override
34+
public String getFile() {
35+
return file;
2936
}
3037
}

src/main/java/ai/deepcode/javaclient/responses/Position.java

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ public interface Position {
77

88
List<Integer> getCols();
99

10+
default String getFile() {
11+
return null;
12+
}
13+
1014
@Override
1115
String toString();
1216
}

0 commit comments

Comments
 (0)