1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-29 11:55:40 +02:00

Fix semantic highlighting for included namespace definitions

This commit is contained in:
Anton Leherbauer 2007-05-02 09:25:40 +00:00
parent 999ef614bf
commit eedf0b1e7a

View file

@ -30,7 +30,6 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.cdt.core.IPositionConverter; import org.eclipse.cdt.core.IPositionConverter;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration; import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTDeclarator; import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
@ -43,6 +42,8 @@ import org.eclipse.cdt.core.dom.ast.IASTNodeLocation;
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition; import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.CPPASTVisitor;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition;
import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.CUIPlugin;
@ -64,7 +65,7 @@ public class SemanticHighlightingReconciler implements ICReconcilingListener {
/** /**
* Collects positions from the AST. * Collects positions from the AST.
*/ */
private class PositionCollector extends ASTVisitor { private class PositionCollector extends CPPASTVisitor {
{ {
shouldVisitTranslationUnit= true; shouldVisitTranslationUnit= true;
shouldVisitNames= true; shouldVisitNames= true;
@ -73,6 +74,7 @@ public class SemanticHighlightingReconciler implements ICReconcilingListener {
shouldVisitStatements= true; shouldVisitStatements= true;
shouldVisitDeclSpecifiers= true; shouldVisitDeclSpecifiers= true;
shouldVisitDeclarators= true; shouldVisitDeclarators= true;
shouldVisitNamespaces= true;
} }
/** The semantic token */ /** The semantic token */
@ -127,6 +129,19 @@ public class SemanticHighlightingReconciler implements ICReconcilingListener {
return PROCESS_CONTINUE; return PROCESS_CONTINUE;
} }
/*
* @see org.eclipse.cdt.core.dom.ast.cpp.CPPASTVisitor#visit(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition)
*/
public int visit(ICPPASTNamespaceDefinition namespace) {
if (!fFilePath.equals(namespace.getContainingFilename())) {
return PROCESS_SKIP;
}
if (checkForMacro(namespace)) {
return PROCESS_SKIP;
}
return PROCESS_CONTINUE;
}
/* /*
* @see org.eclipse.cdt.core.dom.ast.ASTVisitor#visit(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier) * @see org.eclipse.cdt.core.dom.ast.ASTVisitor#visit(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier)
*/ */