From a71f94b6dca8694473ef7e26b39708bac9a6f647 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Mon, 2 Apr 2007 08:04:26 +0000 Subject: [PATCH] Fix for 180433: [Editor] Highlighting of preprocessor directives is bogus --- .../cdt/ui/tests/text/BasicCEditorTest.java | 23 +++++++++++++++++++ .../ui/text/CPreprocessorScanner.java | 1 - 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java index 76ee9e28c4c..b18420b6fc7 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java @@ -24,7 +24,10 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.text.TextSelection; import org.eclipse.jface.text.source.SourceViewer; +import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Event; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.PartInitException; @@ -35,11 +38,14 @@ import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.testplugin.CProjectHelper; +import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.tests.BaseUITestCase; import org.eclipse.cdt.internal.core.model.ExternalTranslationUnit; import org.eclipse.cdt.internal.ui.editor.CEditor; +import org.eclipse.cdt.internal.ui.text.ICColorConstants; +import org.eclipse.cdt.internal.ui.text.util.CColorManager; import org.eclipse.cdt.internal.ui.util.EditorUtility; /** @@ -163,6 +169,23 @@ public class BasicCEditorTest extends BaseUITestCase { tmpFile.delete(); } + public void testSyntaxHighlighting_Bug180433() throws Exception { + CColorManager colorMgr= CUIPlugin.getDefault().getTextTools().getColorManager(); + colorMgr.unbindColor(ICColorConstants.PP_DIRECTIVE); + colorMgr.bindColor(ICColorConstants.PP_DIRECTIVE, new RGB(7,7,7)); + final Color ppDirectiveColor= colorMgr.getColor(ICColorConstants.PP_DIRECTIVE); + final String file= "/ceditor/src/main.cpp"; + fCProject= EditorTestHelper.createCProject("ceditor", "resources/ceditor", false); + setUpEditor(file); + fSourceViewer= EditorTestHelper.getSourceViewer(fEditor); + assertTrue(EditorTestHelper.joinReconciler(fSourceViewer, 0, 10000, 100)); + String content= fDocument.get(); + String include= "#include"; + int includeIdx= content.indexOf(include); + StyleRange style= fTextWidget.getStyleRangeAtOffset(includeIdx); + assertSame(style.foreground, ppDirectiveColor); + } + /** * Type characters into the styled text. * diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CPreprocessorScanner.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CPreprocessorScanner.java index 74770fb73df..4a182223dc4 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CPreprocessorScanner.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CPreprocessorScanner.java @@ -75,7 +75,6 @@ public class CPreprocessorScanner extends AbstractCScanner { token= getToken(ICColorConstants.PP_DIRECTIVE); PreprocessorRule preprocessorRule = new PreprocessorRule(new CWordDetector(), token); - token= getToken(ICColorConstants.C_TYPE); String[] ppKeywords= fKeywords.getPreprocessorKeywords(); for (int i = 0; i < ppKeywords.length; i++) { preprocessorRule.addWord(ppKeywords[i], token);