diff --git a/src/main/java/de/prob2/jupyter/ProBKernel.java b/src/main/java/de/prob2/jupyter/ProBKernel.java index ebb89fa5bf17d2b1a6597a96c0e2a03f86f3cbd1..f33752ace2b1ec334591f2f4ad737543b8985551 100644 --- a/src/main/java/de/prob2/jupyter/ProBKernel.java +++ b/src/main/java/de/prob2/jupyter/ProBKernel.java @@ -667,7 +667,9 @@ public final class ProBKernel extends BaseKernel { out.add(this.errorStyler.secondary(String.format("Error end line %d out of bounds (1..%d)", location.getEndLine(), sourceLines.size()))); return out; } - final List<String> errorLines = sourceLines.subList(location.getStartLine()-1, location.getEndLine()); + final int startLineIndex = location.getStartLine() - 1; + final int endLineIndex = location.getEndLine() - 1; + final List<String> errorLines = sourceLines.subList(startLineIndex, endLineIndex + 1); assert !errorLines.isEmpty(); final String firstLine = errorLines.get(0); final String lastLine = errorLines.get(errorLines.size() - 1); @@ -679,6 +681,11 @@ public final class ProBKernel extends BaseKernel { out.add(this.errorStyler.secondary(String.format("Error end column %d out of bounds (0..%d)", location.getEndColumn(), lastLine.length()-1))); return out; } + + if (startLineIndex > 0) { + out.add(this.errorStyler.primary(sourceLines.get(startLineIndex - 1))); + } + if (errorLines.size() == 1) { out.add( this.errorStyler.primary(firstLine.substring(0, location.getStartColumn())) @@ -696,6 +703,11 @@ public final class ProBKernel extends BaseKernel { + this.errorStyler.primary(lastLine.substring(location.getEndColumn())) ); } + + if (endLineIndex < sourceLines.size() - 1) { + out.add(this.errorStyler.primary(sourceLines.get(endLineIndex + 1))); + } + return out; }