From 27d806f7382c2c8d31ce7d671a709d32c37f33ae Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Thu, 14 Sep 2006 15:42:13 +0000 Subject: [PATCH] Fix wrong highlighting of macro substitutions --- .../cdt/ui/tests/text/SemanticHighlightingTest.java | 5 +---- .../ui/editor/SemanticHighlightingReconciler.java | 8 ++++++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java index 1e5fbfe58d4..a49cee4651c 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/SemanticHighlightingTest.java @@ -186,7 +186,6 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest { Position[] expected= new Position[] { createPosition(11, 20, 1), createPosition(28, 35, 3), - createPosition(29, 8, 19), createPosition(30, 19, 3), createPosition(77, 21, 4), createPosition(77, 30, 4), @@ -291,10 +290,8 @@ public class SemanticHighlightingTest extends AbstractSemanticHighlightingTest { setUpSemanticHighlighting(SemanticHighlightings.FUNCTION_INVOCATION); Position[] actual= getSemanticHighlightingPositions(); Position[] expected= new Position[] { - createPosition(29, 8, 19), createPosition(30, 8, 10), - createPosition(99, 1, 16), - createPosition(120, 4, 17), + createPosition(99, 1, 16) }; if (PRINT_POSITIONS) System.out.println(toString(actual)); assertEqualPositions(expected, actual); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightingReconciler.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightingReconciler.java index ec674943c2d..9d3e0a01228 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightingReconciler.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightingReconciler.java @@ -84,6 +84,13 @@ public class SemanticHighlightingReconciler implements ICReconcilingListener { if (!fFilePath.equals(declaration.getContainingFilename())) { return PROCESS_SKIP; } + IASTNodeLocation[] nodeLocations= declaration.getNodeLocations(); + if (nodeLocations.length > 0 && nodeLocations[0] instanceof IASTMacroExpansion) { + if (visitNode(declaration)) { + return PROCESS_SKIP; + } + return PROCESS_SKIP; + } return PROCESS_CONTINUE; } @@ -99,6 +106,7 @@ public class SemanticHighlightingReconciler implements ICReconcilingListener { if (visitNode(expression)) { return PROCESS_SKIP; } + return PROCESS_SKIP; } return PROCESS_CONTINUE; }