mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 10:46:02 +02:00
Fix function and method highlighting
This commit is contained in:
parent
66b8cbde90
commit
98a81457f6
8 changed files with 171 additions and 139 deletions
|
@ -7,7 +7,7 @@ enum Enumeration {
|
|||
|
||||
const int globalConstant = 0;
|
||||
int globalVariable = 0;
|
||||
static int globalStaticVariable;
|
||||
static int globalStaticVariable = 0;
|
||||
|
||||
void globalFunc(int a);
|
||||
static void globalStaticFunc() {
|
||||
|
@ -29,6 +29,7 @@ public:
|
|||
static int staticPubMethod(int arg) {
|
||||
FUNCTION_MACRO(arg);
|
||||
globalFunc(arg);
|
||||
return globalStaticVariable;
|
||||
}
|
||||
int pubMethod();
|
||||
|
||||
|
@ -71,7 +72,7 @@ private:
|
|||
|
||||
};
|
||||
|
||||
template<T1,T2> class TemplateClass {
|
||||
template<class T1, class T2> class TemplateClass {
|
||||
T1 tArg1;
|
||||
T2 tArg2;
|
||||
TemplateClass(T1 arg1, T2 arg2) {
|
||||
|
@ -80,7 +81,7 @@ template<T1,T2> class TemplateClass {
|
|||
}
|
||||
};
|
||||
|
||||
template<T1> class PartialInstantiatedClass : TemplateClass<T1,Base1> {};
|
||||
template<class T1> class PartialInstantiatedClass : TemplateClass<T1, Base1> {};
|
||||
|
||||
|
||||
struct CppStruct {
|
||||
|
@ -94,8 +95,10 @@ union CppUnion {
|
|||
typedef CppUnion TUnion;
|
||||
|
||||
namespace ns {
|
||||
int namespaceField = 0;
|
||||
int namespaceVar = 0;
|
||||
int namespaceFunc() {
|
||||
globalStaticFunc();
|
||||
return namespaceVar;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,17 +107,19 @@ int ClassContainer::protMethod() {
|
|||
}
|
||||
|
||||
int ClassContainer::pubMethod() {
|
||||
int localVar;
|
||||
return pubField;
|
||||
int localVar = 0;
|
||||
return pubField + localVar;
|
||||
}
|
||||
|
||||
int ClassContainer::staticPrivMethod() {
|
||||
CppStruct st= new CppStruct();
|
||||
st.structField= 1;
|
||||
CppUnion un= new CppUnion();
|
||||
CppStruct* st= new CppStruct();
|
||||
st->structField= 1;
|
||||
CppUnion un;
|
||||
un.unionField= 2;
|
||||
staticPubMethod(staticPrivField);
|
||||
label:
|
||||
FUNCTION_MACRO(0);
|
||||
if (un.unionField < st->structField) goto label;
|
||||
problemMethod();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.eclipse.cdt.ui.tests.text.CBreakIteratorTest;
|
|||
import org.eclipse.cdt.ui.tests.text.CPartitionerTest;
|
||||
import org.eclipse.cdt.ui.tests.text.CWordIteratorTest;
|
||||
import org.eclipse.cdt.ui.tests.text.NumberRuleTest;
|
||||
import org.eclipse.cdt.ui.tests.text.SemanticHighlightingTest;
|
||||
import org.eclipse.cdt.ui.tests.text.contentassist.CompletionFailedTest_MemberReference_Arrow_Prefix2;
|
||||
import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_ArgumentType_NoPrefix;
|
||||
import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_ArgumentType_NoPrefix2;
|
||||
|
@ -145,6 +146,10 @@ public class AutomatedSuite extends TestSuite {
|
|||
// Break iterator tests.
|
||||
addTest(CBreakIteratorTest.suite());
|
||||
addTest(CWordIteratorTest.suite());
|
||||
|
||||
// highlighting tests
|
||||
addTest(SemanticHighlightingTest.suite());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -91,6 +91,8 @@ public class AbstractSemanticHighlightingTest extends TestCase {
|
|||
|
||||
private static SourceViewer fSourceViewer;
|
||||
|
||||
private String fCurrentHighlighting;
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
disableAllSemanticHighlightings();
|
||||
|
@ -112,6 +114,7 @@ public class AbstractSemanticHighlightingTest extends TestCase {
|
|||
|
||||
String toString(Position[] positions) throws BadLocationException {
|
||||
StringBuffer buf= new StringBuffer();
|
||||
buf.append("// "+fCurrentHighlighting+'\n');
|
||||
IDocument document= fSourceViewer.getDocument();
|
||||
buf.append("Position[] expected= new Position[] {\n");
|
||||
for (int i= 0, n= positions.length; i < n; i++) {
|
||||
|
@ -133,6 +136,7 @@ public class AbstractSemanticHighlightingTest extends TestCase {
|
|||
}
|
||||
|
||||
protected void setUpSemanticHighlighting(String semanticHighlighting) {
|
||||
fCurrentHighlighting= semanticHighlighting;
|
||||
enableSemanticHighlighting(semanticHighlighting);
|
||||
EditorTestHelper.forceReconcile(fSourceViewer);
|
||||
assertTrue(EditorTestHelper.joinReconciler(fSourceViewer, 0, 10000, 100));
|
||||
|
|
|
@ -27,6 +27,8 @@ import org.eclipse.cdt.internal.ui.editor.SemanticHighlightings;
|
|||
*/
|
||||
public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
||||
|
||||
private static final boolean PRINT_POSITIONS= false;
|
||||
|
||||
private static final Class THIS= SemanticHighlightingTest.class;
|
||||
|
||||
public static Test suite() {
|
||||
|
@ -50,13 +52,13 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] expected= new Position[] {
|
||||
createPosition(23, 15, 14),
|
||||
createPosition(25, 21, 19),
|
||||
createPosition(41, 21, 20),
|
||||
createPosition(42, 15, 15),
|
||||
createPosition(56, 21, 20),
|
||||
createPosition(57, 15, 15),
|
||||
createPosition(115, 20, 15),
|
||||
createPosition(42, 21, 20),
|
||||
createPosition(43, 15, 15),
|
||||
createPosition(57, 21, 20),
|
||||
createPosition(58, 15, 15),
|
||||
createPosition(118, 20, 15),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -66,22 +68,24 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] expected= new Position[] {
|
||||
createPosition(24, 14, 13),
|
||||
createPosition(26, 8, 8),
|
||||
createPosition(43, 15, 14),
|
||||
createPosition(44, 8, 9),
|
||||
createPosition(58, 15, 14),
|
||||
createPosition(59, 8, 9),
|
||||
createPosition(74, 7, 5),
|
||||
createPosition(44, 15, 14),
|
||||
createPosition(45, 8, 9),
|
||||
createPosition(59, 15, 14),
|
||||
createPosition(60, 8, 9),
|
||||
createPosition(75, 7, 5),
|
||||
createPosition(77, 8, 5),
|
||||
createPosition(76, 7, 5),
|
||||
createPosition(78, 8, 5),
|
||||
createPosition(86, 8, 11),
|
||||
createPosition(90, 8, 10),
|
||||
createPosition(102, 11, 9),
|
||||
createPosition(107, 11, 8),
|
||||
createPosition(112, 7, 11),
|
||||
createPosition(114, 7, 10),
|
||||
createPosition(79, 8, 5),
|
||||
createPosition(87, 8, 11),
|
||||
createPosition(91, 8, 10),
|
||||
createPosition(105, 11, 9),
|
||||
createPosition(110, 11, 8),
|
||||
createPosition(115, 8, 11),
|
||||
createPosition(117, 7, 10),
|
||||
createPosition(121, 11, 10),
|
||||
createPosition(121, 28, 11),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -90,32 +94,31 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(28, 15, 15),
|
||||
createPosition(32, 8, 9),
|
||||
createPosition(46, 15, 16),
|
||||
createPosition(47, 8, 10),
|
||||
createPosition(61, 15, 16),
|
||||
createPosition(62, 8, 10),
|
||||
createPosition(76, 4, 13),
|
||||
createPosition(101, 4, 26),
|
||||
createPosition(101, 20, 10),
|
||||
createPosition(105, 4, 25),
|
||||
createPosition(105, 20, 9),
|
||||
createPosition(110, 4, 32),
|
||||
createPosition(110, 20, 16),
|
||||
createPosition(33, 8, 9),
|
||||
createPosition(47, 15, 16),
|
||||
createPosition(48, 8, 10),
|
||||
createPosition(62, 15, 16),
|
||||
createPosition(63, 8, 10),
|
||||
createPosition(77, 4, 13),
|
||||
createPosition(104, 4, 26),
|
||||
createPosition(104, 20, 10),
|
||||
createPosition(108, 4, 25),
|
||||
createPosition(108, 20, 9),
|
||||
createPosition(113, 4, 32),
|
||||
createPosition(113, 20, 16),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
public void testMethodInvocationHighlighting() throws Exception {
|
||||
setUpSemanticHighlighting(SemanticHighlightings.METHOD_INVOCATION);
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(111, 22, 9),
|
||||
createPosition(113, 21, 8),
|
||||
createPosition(115, 4, 15),
|
||||
createPosition(114, 23, 9),
|
||||
createPosition(118, 4, 15),
|
||||
};
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -154,23 +157,26 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
public void testLocalVariableDeclarationHighlighting() throws Exception {
|
||||
setUpSemanticHighlighting(SemanticHighlightings.LOCAL_VARIABLE_DECLARATION);
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(106, 8, 8),
|
||||
createPosition(111, 14, 2),
|
||||
createPosition(113, 13, 2),
|
||||
createPosition(109, 8, 8),
|
||||
createPosition(114, 15, 2),
|
||||
createPosition(116, 13, 2),
|
||||
};
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
public void testLocalVariableHighlighting() throws Exception {
|
||||
setUpSemanticHighlighting(SemanticHighlightings.LOCAL_VARIABLE);
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(112, 4, 2),
|
||||
createPosition(114, 4, 2),
|
||||
createPosition(110, 22, 8),
|
||||
createPosition(115, 4, 2),
|
||||
createPosition(117, 4, 2),
|
||||
createPosition(121, 8, 2),
|
||||
createPosition(121, 24, 2),
|
||||
};
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -182,12 +188,12 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
createPosition(28, 35, 3),
|
||||
createPosition(29, 8, 19),
|
||||
createPosition(30, 19, 3),
|
||||
createPosition(76, 21, 4),
|
||||
createPosition(76, 30, 4),
|
||||
createPosition(77, 16, 4),
|
||||
createPosition(77, 21, 4),
|
||||
createPosition(77, 30, 4),
|
||||
createPosition(78, 16, 4),
|
||||
createPosition(79, 16, 4),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -195,8 +201,16 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
setUpSemanticHighlighting(SemanticHighlightings.TEMPLATE_PARAMETER);
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(74, 15, 2),
|
||||
createPosition(74, 25, 2),
|
||||
createPosition(75, 4, 2),
|
||||
createPosition(76, 4, 2),
|
||||
createPosition(77, 18, 2),
|
||||
createPosition(77, 27, 2),
|
||||
createPosition(83, 15, 2),
|
||||
createPosition(83, 66, 2),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -215,11 +229,11 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(3, 5, 11),
|
||||
createPosition(34, 9, 14),
|
||||
createPosition(49, 9, 15),
|
||||
createPosition(64, 9, 15),
|
||||
createPosition(35, 9, 14),
|
||||
createPosition(50, 9, 15),
|
||||
createPosition(65, 9, 15),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -233,29 +247,30 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
createPosition(18, 23, 5),
|
||||
createPosition(18, 30, 5),
|
||||
createPosition(20, 17, 11),
|
||||
createPosition(35, 10, 8),
|
||||
createPosition(36, 10, 9),
|
||||
createPosition(37, 10, 8),
|
||||
createPosition(38, 12, 8),
|
||||
createPosition(50, 10, 9),
|
||||
createPosition(51, 10, 10),
|
||||
createPosition(52, 10, 9),
|
||||
createPosition(53, 12, 9),
|
||||
createPosition(65, 10, 9),
|
||||
createPosition(66, 10, 10),
|
||||
createPosition(67, 10, 9),
|
||||
createPosition(68, 12, 9),
|
||||
createPosition(73, 22, 13),
|
||||
createPosition(82, 19, 24),
|
||||
createPosition(82, 46, 13),
|
||||
createPosition(82, 63, 5),
|
||||
createPosition(85, 7, 9),
|
||||
createPosition(89, 6, 8),
|
||||
createPosition(93, 8, 8),
|
||||
createPosition(111, 4, 9),
|
||||
createPosition(113, 4, 8),
|
||||
createPosition(36, 10, 8),
|
||||
createPosition(37, 10, 9),
|
||||
createPosition(38, 10, 8),
|
||||
createPosition(39, 12, 8),
|
||||
createPosition(51, 10, 9),
|
||||
createPosition(52, 10, 10),
|
||||
createPosition(53, 10, 9),
|
||||
createPosition(54, 12, 9),
|
||||
createPosition(66, 10, 9),
|
||||
createPosition(67, 10, 10),
|
||||
createPosition(68, 10, 9),
|
||||
createPosition(69, 12, 9),
|
||||
createPosition(74, 35, 13),
|
||||
createPosition(83, 25, 24),
|
||||
createPosition(83, 52, 13),
|
||||
createPosition(83, 52, 24),
|
||||
createPosition(83, 70, 5),
|
||||
createPosition(86, 7, 9),
|
||||
createPosition(90, 6, 8),
|
||||
createPosition(94, 8, 8),
|
||||
createPosition(114, 4, 9),
|
||||
createPosition(116, 4, 8),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -266,22 +281,9 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
createPosition(11, 5, 10),
|
||||
createPosition(12, 12, 16),
|
||||
createPosition(19, 16, 10),
|
||||
createPosition(28, 15, 15),
|
||||
createPosition(32, 8, 9),
|
||||
createPosition(46, 15, 16),
|
||||
createPosition(47, 8, 10),
|
||||
createPosition(61, 15, 16),
|
||||
createPosition(62, 8, 10),
|
||||
createPosition(76, 4, 13),
|
||||
createPosition(97, 8, 13),
|
||||
createPosition(101, 4, 26),
|
||||
createPosition(101, 20, 10),
|
||||
createPosition(105, 4, 25),
|
||||
createPosition(105, 20, 9),
|
||||
createPosition(110, 4, 32),
|
||||
createPosition(110, 20, 16),
|
||||
createPosition(98, 8, 13),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -291,12 +293,10 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] expected= new Position[] {
|
||||
createPosition(29, 8, 19),
|
||||
createPosition(30, 8, 10),
|
||||
createPosition(111, 22, 9),
|
||||
createPosition(113, 21, 8),
|
||||
createPosition(115, 4, 15),
|
||||
createPosition(117, 4, 17),
|
||||
createPosition(99, 1, 16),
|
||||
createPosition(120, 4, 17),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -308,9 +308,11 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
createPosition(7, 10, 14),
|
||||
createPosition(8, 4, 14),
|
||||
createPosition(9, 11, 20),
|
||||
createPosition(96, 8, 14),
|
||||
createPosition(31, 15, 20),
|
||||
createPosition(97, 8, 12),
|
||||
createPosition(100, 8, 12),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -319,9 +321,9 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(29, 8, 19),
|
||||
createPosition(117, 4, 17),
|
||||
createPosition(120, 4, 17),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -329,12 +331,12 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
setUpSemanticHighlighting(SemanticHighlightings.TYPEDEF);
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(38, 21, 10),
|
||||
createPosition(53, 22, 11),
|
||||
createPosition(68, 22, 11),
|
||||
createPosition(93, 17, 6),
|
||||
createPosition(39, 21, 10),
|
||||
createPosition(54, 22, 11),
|
||||
createPosition(69, 22, 11),
|
||||
createPosition(94, 17, 6),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -342,9 +344,9 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
setUpSemanticHighlighting(SemanticHighlightings.NAMESPACE);
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(95, 10, 2),
|
||||
createPosition(96, 10, 2),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -352,9 +354,10 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
setUpSemanticHighlighting(SemanticHighlightings.LABEL);
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(116, 0, 5),
|
||||
createPosition(119, 0, 5),
|
||||
createPosition(121, 46, 5),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -363,11 +366,11 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(4, 4, 10),
|
||||
createPosition(34, 25, 13),
|
||||
createPosition(49, 26, 14),
|
||||
createPosition(64, 26, 14),
|
||||
createPosition(35, 25, 13),
|
||||
createPosition(50, 26, 14),
|
||||
createPosition(65, 26, 14),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
@ -375,16 +378,9 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest {
|
|||
setUpSemanticHighlighting(SemanticHighlightings.PROBLEM);
|
||||
Position[] actual= getSemanticHighlightingPositions();
|
||||
Position[] expected= new Position[] {
|
||||
createPosition(73, 9, 2),
|
||||
createPosition(73, 12, 2),
|
||||
createPosition(74, 4, 2),
|
||||
createPosition(75, 4, 2),
|
||||
createPosition(76, 18, 2),
|
||||
createPosition(76, 27, 2),
|
||||
createPosition(82, 9, 2),
|
||||
createPosition(82, 60, 2),
|
||||
createPosition(122, 4, 13),
|
||||
};
|
||||
// System.out.println(toString(actual));
|
||||
if (PRINT_POSITIONS) System.out.println(toString(actual));
|
||||
assertEqualPositions(expected, actual);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,8 +18,11 @@ import org.eclipse.core.resources.IFile;
|
|||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.content.IContentType;
|
||||
import org.eclipse.jface.text.Assert;
|
||||
import org.eclipse.jface.text.DocumentCommand;
|
||||
import org.eclipse.jface.text.ITextPresentationListener;
|
||||
import org.eclipse.jface.text.ITextViewerExtension;
|
||||
import org.eclipse.jface.text.TextViewer;
|
||||
import org.eclipse.jface.text.contentassist.IContentAssistant;
|
||||
import org.eclipse.jface.text.information.IInformationPresenter;
|
||||
import org.eclipse.jface.text.source.IOverviewRuler;
|
||||
|
@ -221,4 +224,22 @@ public class CSourceViewer extends ProjectionViewer implements ITextViewerExtens
|
|||
super.setRangeIndication(offset, length, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepend given listener to the list of presentation listeners
|
||||
*
|
||||
* @param listener The listener to be added.
|
||||
*
|
||||
* @see TextViewer#addTextPresentationListener(ITextPresentationListener)
|
||||
* @since 4.0
|
||||
*/
|
||||
public void prependTextPresentationListener(ITextPresentationListener listener) {
|
||||
Assert.isNotNull(listener);
|
||||
|
||||
if (fTextPresentationListeners == null)
|
||||
fTextPresentationListeners= new ArrayList();
|
||||
|
||||
fTextPresentationListeners.remove(listener);
|
||||
fTextPresentationListeners.add(0, listener);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -255,7 +255,7 @@ public class InactiveCodeHighlighting implements ICReconcilingListener {
|
|||
inInactiveCode = true;
|
||||
} else if (elseStmt.taken() && inInactiveCode) {
|
||||
IASTNodeLocation nodeLocation = elseStmt.getNodeLocations()[0];
|
||||
int inactiveCodeEnd = nodeLocation.getNodeOffset() + nodeLocation.getNodeLength();
|
||||
int inactiveCodeEnd = nodeLocation.getNodeOffset() - 1;
|
||||
positions.add(new HighlightPosition(inactiveCodeStart, inactiveCodeEnd - inactiveCodeStart, fHighlightKey));
|
||||
inInactiveCode = false;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ public class InactiveCodeHighlighting implements ICReconcilingListener {
|
|||
inInactiveCode = true;
|
||||
} else if (elifStmt.taken() && inInactiveCode) {
|
||||
IASTNodeLocation nodeLocation = elifStmt.getNodeLocations()[0];
|
||||
int inactiveCodeEnd = nodeLocation.getNodeOffset() + nodeLocation.getNodeLength();
|
||||
int inactiveCodeEnd = nodeLocation.getNodeOffset() - 1;
|
||||
positions.add(new HighlightPosition(inactiveCodeStart, inactiveCodeEnd - inactiveCodeStart, fHighlightKey));
|
||||
inInactiveCode = false;
|
||||
}
|
||||
|
|
|
@ -653,8 +653,7 @@ public class SemanticHighlightingPresenter implements ITextPresentationListener,
|
|||
fSourceViewer= sourceViewer;
|
||||
fPresentationReconciler= backgroundPresentationReconciler;
|
||||
|
||||
fSourceViewer.addTextPresentationListener(this);
|
||||
// fSourceViewer.prependTextPresentationListener(this);
|
||||
fSourceViewer.prependTextPresentationListener(this);
|
||||
fSourceViewer.addTextInputListener(this);
|
||||
manageDocument(fSourceViewer.getDocument());
|
||||
}
|
||||
|
|
|
@ -781,7 +781,7 @@ public class SemanticHighlightings {
|
|||
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
|
||||
*/
|
||||
public boolean isBoldByDefault() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -814,7 +814,7 @@ public class SemanticHighlightings {
|
|||
IASTName name= (IASTName)node;
|
||||
if (name.isDeclaration()) {
|
||||
IBinding binding= token.getBinding();
|
||||
if (binding instanceof IFunction) {
|
||||
if (binding instanceof IFunction && !(binding instanceof ICPPMethod)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -879,7 +879,9 @@ public class SemanticHighlightings {
|
|||
IASTName name= (IASTName)node;
|
||||
if (name.isReference()) {
|
||||
IBinding binding= token.getBinding();
|
||||
return binding instanceof IFunction;
|
||||
if (binding instanceof IFunction && !(binding instanceof ICPPMethod)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -1934,8 +1936,6 @@ public class SemanticHighlightings {
|
|||
if (fgSemanticHighlightings == null)
|
||||
fgSemanticHighlightings= new SemanticHighlighting[] {
|
||||
new MacroSubstitutionHighlighting(), // before all others!
|
||||
new FunctionDeclarationHighlighting(),
|
||||
new FunctionInvocationHighlighting(),
|
||||
new ClassHighlighting(),
|
||||
// new StaticConstFieldHighlighting(),
|
||||
new StaticFieldHighlighting(),
|
||||
|
@ -1959,6 +1959,8 @@ public class SemanticHighlightings {
|
|||
new EnumHighlighting(),
|
||||
// TLETODO [semanticHighlighting] Macro definition highlighting
|
||||
// new MacroDefinitionHighlighting(),
|
||||
new FunctionDeclarationHighlighting(),
|
||||
new FunctionInvocationHighlighting(),
|
||||
new TypedefHighlighting(),
|
||||
new NamespaceHighlighting(),
|
||||
new LabelHighlighting(),
|
||||
|
|
Loading…
Add table
Reference in a new issue