File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed
bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll
tests/org.eclipse.ui.editors.tests/src/org/eclipse/ui/internal/texteditor/stickyscroll Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,12 @@ public String getText() {
5353 @ Override
5454 public StyleRange [] getStyleRanges () {
5555 StyledText textWidget = sourceViewer .getTextWidget ();
56+ int widgetLineNumber = getWidgetLineNumber ();
57+
58+ if (widgetLineNumber > textWidget .getLineCount ()) {
59+ return null ;
60+ }
61+
5662 int offsetAtLine = textWidget .getOffsetAtLine (getWidgetLineNumber ());
5763 StyleRange [] styleRanges = textWidget .getStyleRanges (offsetAtLine , getText ().length ());
5864 for (StyleRange styleRange : styleRanges ) {
Original file line number Diff line number Diff line change 1414package org .eclipse .ui .internal .texteditor .stickyscroll ;
1515
1616import static org .junit .Assert .assertEquals ;
17+ import static org .junit .Assert .assertNull ;
1718
1819import org .junit .After ;
1920import org .junit .Before ;
@@ -94,6 +95,16 @@ public void testGetStyleRanges() {
9495 assertEquals (2 , styleRanges [1 ].length );
9596 }
9697
98+ @ Test
99+ public void testGetStyleRangesIgnoresOutOfBoundLines () {
100+ textWidget .setText ("line1\n line2\n line3" );
101+
102+ StickyLine stickyLineOutOfBound = new StickyLine (10 , sourceViewer );
103+ StyleRange [] styleRanges = stickyLineOutOfBound .getStyleRanges ();
104+
105+ assertNull (styleRanges );
106+ }
107+
97108 @ Test
98109 public void WithSourceViewerLineMapping () {
99110 sourceViewer = new SourceViewerWithLineMapping (shell , null , SWT .None );
You can’t perform that action at this time.
0 commit comments