Commit db25f9a1 authored by Erik Verbruggen's avatar Erik Verbruggen

C++: Added highlighting for labels.

Change-Id: I559a3112d2aa0a3c09554f8da8b7917f9aa27944
Reviewed-by: default avatarRoberto Raggi <roberto.raggi@nokia.com>
parent eb521323
......@@ -1717,6 +1717,8 @@ void CPPEditorWidget::setFontSettings(const TextEditor::FontSettings &fs)
fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_STATIC));
m_semanticHighlightFormatMap[SemanticInfo::VirtualMethodUse] =
fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_VIRTUAL_METHOD));
m_semanticHighlightFormatMap[SemanticInfo::LabelUse] =
fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_LABEL));
m_keywordFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_KEYWORD));
// only set the background, we do not want to modify foreground properties set by the syntax highlighter or the link
......
......@@ -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();
......
......@@ -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();
......
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment