Fixed broken test
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaLineSegmentationTest.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaLineSegmentationTest.java
index 41b90e1..ed6354d 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaLineSegmentationTest.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaLineSegmentationTest.java
@@ -14,6 +14,9 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.eclipse.swt.widgets.Composite;
+
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.jface.text.BadLocationException;
@@ -21,12 +24,15 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentExtension3;
import org.eclipse.jface.text.IDocumentPartitioner;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.source.IOverviewRuler;
+import org.eclipse.jface.text.source.IVerticalRuler;
import org.eclipse.jface.text.tests.TestTextViewer;
import org.eclipse.jdt.ui.text.IJavaPartitions;
import org.eclipse.jdt.ui.text.JavaTextTools;
-import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
+import org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer;
@@ -90,18 +96,34 @@
fDocument.set("abcde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, null);
} catch (BadLocationException x) {
assertTrue(false);
}
}
+
+ // Helper to access protected method
+ static final class BidiComputer extends JavaSourceViewer {
+ public BidiComputer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler, boolean showAnnotationsOverview, int styles, IPreferenceStore store) {
+ super(parent, verticalRuler, overviewRuler, showAnnotationsOverview, styles, store);
+ }
+
+ public static int[] getBidiLineSegments(IDocument document, int lineOffset) throws BadLocationException {
+ return JavaSourceViewer.getBidiLineSegments(document, lineOffset);
+ }
+ }
+
+ private int[] getBidiLineSegments(ITextViewer viewer, int lineOffset) throws BadLocationException {
+ IDocument document= viewer.getDocument();
+ return BidiComputer.getBidiLineSegments(document, lineOffset);
+ }
public void test12() {
fDocument.set("abcde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, null);
} catch (BadLocationException x) {
assertTrue(false);
@@ -112,7 +134,7 @@
fDocument.set("\nabcde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, null);
} catch (BadLocationException x) {
assertTrue(false);
@@ -123,7 +145,7 @@
fDocument.set("\nabcde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, null);
} catch (BadLocationException x) {
assertTrue(false);
@@ -135,7 +157,7 @@
fDocument.set("\"ab\"cde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -146,7 +168,7 @@
fDocument.set("\"ab\"cde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -157,7 +179,7 @@
fDocument.set("\n\"ab\"cde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -168,7 +190,7 @@
fDocument.set("\n\"ab\"cde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -180,7 +202,7 @@
fDocument.set("\"ab\"c\"de\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4, 5 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -191,7 +213,7 @@
fDocument.set("\"ab\"c\"de\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4, 5 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -202,7 +224,7 @@
fDocument.set("\n\"ab\"c\"de\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4, 5 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -213,7 +235,7 @@
fDocument.set("\n\"ab\"c\"de\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4, 5 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -225,7 +247,7 @@
fDocument.set("\"ab\"\"cd\"e");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4, 8 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -236,7 +258,7 @@
fDocument.set("\"ab\"\"cd\"e\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4, 8 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -247,7 +269,7 @@
fDocument.set("\n\"ab\"\"cd\"e");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4, 8 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -258,7 +280,7 @@
fDocument.set("\n\"ab\"\"cd\"e\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4, 8 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -270,7 +292,7 @@
fDocument.set("\"ab\"\"cde\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -281,7 +303,7 @@
fDocument.set("\"ab\"\"cde\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -292,7 +314,7 @@
fDocument.set("\n\"ab\"\"cde\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -303,7 +325,7 @@
fDocument.set("\n\"ab\"\"cde\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -315,7 +337,7 @@
fDocument.set("\"abcde\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -326,7 +348,7 @@
fDocument.set("\"abcde\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -337,7 +359,7 @@
fDocument.set("\n\"abcde\"");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -348,7 +370,7 @@
fDocument.set("\n\"abcde\"\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -359,7 +381,7 @@
fDocument.set("ab\"\"cde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 2, 4});
} catch (BadLocationException x) {
assertTrue(false);
@@ -370,7 +392,7 @@
fDocument.set("ab\"\"cde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 0);
+ int[] result= getBidiLineSegments(fTextViewer, 0);
checkSegmentation(result, new int[] { 0, 2, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -381,7 +403,7 @@
fDocument.set("\nab\"\"cde");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 2, 4 });
} catch (BadLocationException x) {
assertTrue(false);
@@ -392,7 +414,7 @@
fDocument.set("\nab\"\"cde\n");
fTextViewer.setDocument(fDocument);
try {
- int[] result= JavaEditor.getBidiLineSegments(fTextViewer, 1);
+ int[] result= getBidiLineSegments(fTextViewer, 1);
checkSegmentation(result, new int[] { 0, 2, 4 });
} catch (BadLocationException x) {
assertTrue(false);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaSourceViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaSourceViewer.java
index d0c97a3..ce9070b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaSourceViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaSourceViewer.java
@@ -486,7 +486,7 @@
* @return the line's BIDI segmentation
* @throws BadLocationException in case lineOffset is not valid in document
*/
- protected int[] getBidiLineSegments(IDocument document, int lineOffset) throws BadLocationException {
+ protected static int[] getBidiLineSegments(IDocument document, int lineOffset) throws BadLocationException {
if (document == null)
return null;