@@ -1028,6 +1028,14 @@ static public void showChanges() {
10281028 }
10291029 }
10301030
1031+ static public int getProblemEditorLineStop (Problem problem , int lineStart , int lineStop ) {
1032+ int stopOffset = problem .getStopOffset ();
1033+ if (stopOffset == -1 ) {
1034+ stopOffset = lineStop - lineStart ;
1035+ }
1036+ return stopOffset ;
1037+ }
1038+
10311039
10321040 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10331041
@@ -2563,8 +2571,11 @@ public void highlight(Problem p) {
25632571 int tabIndex = p .getTabIndex ();
25642572 int lineNumber = p .getLineNumber ();
25652573 int lineStart = textarea .getLineStartOffset (lineNumber );
2574+ int lineEnd = textarea .getLineStopOffset (lineNumber );
25662575 int tabToStartOffset = lineStart + p .getStartOffset ();
2567- int tabToStopOffset = lineStart + p .getStopOffset ();
2576+
2577+ int lineStopOffset = getProblemEditorLineStop (p , lineStart , lineEnd );
2578+ int tabToStopOffset = lineStart + lineStopOffset ;
25682579 highlight (tabIndex , tabToStartOffset , tabToStopOffset );
25692580 }
25702581
@@ -2631,7 +2642,8 @@ public List<Problem> findProblems(int line) {
26312642 .filter (p -> {
26322643 int pStartLine = p .getLineNumber ();
26332644 int lineOffset = textarea .getLineStartOffset (pStartLine );
2634- int pEndOffset = lineOffset + p .getStopOffset ();
2645+ int stopOffset = p .getStopOffset ();
2646+ int pEndOffset = lineOffset + (stopOffset == -1 ? 0 : stopOffset );
26352647 int pEndLine = textarea .getLineOfOffset (pEndOffset );
26362648
26372649 return line >= pStartLine && line <= pEndLine ;
0 commit comments