C++: Added highlighting for labels.

Change-Id: I559a3112d2aa0a3c09554f8da8b7917f9aa27944
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
Erik Verbruggen
2012-02-07 15:59:08 +01:00
parent eb521323ca
commit db25f9a136
4 changed files with 26 additions and 2 deletions

View File

@@ -765,6 +765,23 @@ bool CheckSymbols::visit(MemInitializerAST *ast)
return false;
}
bool CheckSymbols::visit(GotoStatementAST *ast)
{
if (ast->identifier_token)
addUse(ast->identifier_token, SemanticInfo::LabelUse);
return false;
}
bool CheckSymbols::visit(LabeledStatementAST *ast)
{
if (ast->label_token)
addUse(ast->label_token, SemanticInfo::LabelUse);
accept(ast->statement);
return false;
}
bool CheckSymbols::visit(FunctionDefinitionAST *ast)
{
AST *thisFunction = _astStack.takeLast();

View File

@@ -154,6 +154,9 @@ protected:
virtual bool visit(MemInitializerAST *ast);
virtual bool visit(GotoStatementAST *ast);
virtual bool visit(LabeledStatementAST *ast);
NameAST *declaratorId(DeclaratorAST *ast) const;
void flush();

View File

@@ -46,11 +46,13 @@ class CPPTOOLS_EXPORT SemanticInfo
{
public:
enum UseKind {
TypeUse = 0,
Unknown = 0,
TypeUse,
LocalUse,
FieldUse,
StaticUse,
VirtualMethodUse
VirtualMethodUse,
LabelUse
};
typedef TextEditor::SemanticHighlighter::Result Use;