diff options
author | Erik Verbruggen <[email protected]> | 2012-03-29 15:52:05 +0200 |
---|---|---|
committer | Erik Verbruggen <[email protected]> | 2012-03-29 15:53:23 +0200 |
commit | 210c191216961eefe58126af0af942302ff30cf2 (patch) | |
tree | 9c5e758d0b441d22fcd4db14cee300cb91ba87f9 /src/plugins | |
parent | e639a2381fd755819cb93992c66dca03bb225f83 (diff) |
Revert "CppHighlighter: highlight all functions/methods."
This reverts commit e3e67467cfea5934f16a95385761455b0c495a0d
Reason is that it shows errors for calls to function-like macros. For example, any use of Q_DISABLE_COPY results in invalid errors.
Change-Id: I1fd1473ac5a30da5b9aebf6a3f0f11055bdbe8ad
Reviewed-by: Erik Verbruggen <[email protected]>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/cppeditor/cppeditor.cpp | 7 | ||||
-rw-r--r-- | src/plugins/cpptools/ModelManagerInterface.h | 3 | ||||
-rw-r--r-- | src/plugins/cpptools/cppchecksymbols.cpp | 98 | ||||
-rw-r--r-- | src/plugins/cpptools/cppchecksymbols.h | 3 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 16 | ||||
-rw-r--r-- | src/plugins/cpptools/cppsemanticinfo.h | 3 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditorconstants.h | 1 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditorsettings.cpp | 1 |
8 files changed, 21 insertions, 111 deletions
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 566b5b634ce..b18cc1dacb9 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1047,11 +1047,6 @@ void CPPEditorWidget::finishHighlightSymbolUsages() TextEditor::SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd( highlighter, m_highlighter); - - if (m_modelManager) - m_modelManager->setExtraDiagnostics(m_lastSemanticInfo.doc->fileName(), - CPlusPlus::CppModelManagerInterface::CppSemanticsDiagnostic, - m_lastSemanticInfo.doc->diagnosticMessages()); } @@ -1748,8 +1743,6 @@ void CPPEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_VIRTUAL_METHOD)); m_semanticHighlightFormatMap[SemanticInfo::LabelUse] = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_LABEL)); - m_semanticHighlightFormatMap[SemanticInfo::FunctionUse] = - fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_FUNCTION)); 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 diff --git a/src/plugins/cpptools/ModelManagerInterface.h b/src/plugins/cpptools/ModelManagerInterface.h index 8bab7086e83..b873e880fe9 100644 --- a/src/plugins/cpptools/ModelManagerInterface.h +++ b/src/plugins/cpptools/ModelManagerInterface.h @@ -179,8 +179,7 @@ public: enum ExtraDiagnosticKind { AllExtraDiagnostics = -1, - ExportedQmlTypesDiagnostic, - CppSemanticsDiagnostic + ExportedQmlTypesDiagnostic }; public: diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp index 2330e037c03..a2d1d6dcf07 100644 --- a/src/plugins/cpptools/cppchecksymbols.cpp +++ b/src/plugins/cpptools/cppchecksymbols.cpp @@ -68,7 +68,6 @@ class CollectSymbols: protected SymbolVisitor Snapshot _snapshot; QSet<QByteArray> _types; QSet<QByteArray> _members; - QSet<QByteArray> _functions; QSet<QByteArray> _virtualMethods; QSet<QByteArray> _statics; bool _mainDocument; @@ -91,11 +90,6 @@ public: return _members; } - const QSet<QByteArray> &functions() const - { - return _functions; - } - const QSet<QByteArray> &virtualMethods() const { return _virtualMethods; @@ -155,17 +149,6 @@ protected: } } - void addFunction(const Name *name) - { - if (! name) { - return; - - } else if (name->isNameId()) { - const Identifier *id = name->identifier(); - _functions.insert(QByteArray::fromRawData(id->chars(), id->size())); - } - } - void addVirtualMethod(const Name *name) { if (! name) { @@ -200,8 +183,6 @@ protected: { if (symbol->isVirtual()) addVirtualMethod(symbol->name()); - else - addFunction(symbol->name()); return true; } @@ -225,8 +206,6 @@ protected: if (Function *funTy = symbol->type()->asFunctionType()) { if (funTy->isVirtual()) addVirtualMethod(symbol->name()); - else - addFunction(symbol->name()); } if (symbol->isTypedef()) @@ -321,7 +300,6 @@ CheckSymbols::CheckSymbols(Document::Ptr doc, const LookupContext &context) _fileName = doc->fileName(); _potentialTypes = collectTypes.types(); _potentialMembers = collectTypes.members(); - _potentialFunctions = collectTypes.functions(); _potentialVirtualMethods = collectTypes.virtualMethods(); _potentialStatics = collectTypes.statics(); @@ -348,7 +326,7 @@ void CheckSymbols::run() bool CheckSymbols::warning(unsigned line, unsigned column, const QString &text, unsigned length) { Document::DiagnosticMessage m(Document::DiagnosticMessage::Warning, _fileName, line, column, text, length); - _doc->addDiagnosticMessage(m); + _diagnosticMessages.append(m); return false; } @@ -499,8 +477,6 @@ bool CheckSymbols::visit(SimpleDeclarationAST *ast) addUse(declId, SemanticInfo::VirtualMethodUse); } else if (maybeVirtualMethod(decl->name())) { addVirtualMethod(_context.lookup(decl->name(), decl->enclosingScope()), declId, funTy->argumentCount()); - } else { - addUse(declId, SemanticInfo::FunctionUse); } } } @@ -559,7 +535,7 @@ bool CheckSymbols::visit(CallAST *ast) if (MemberAccessAST *access = ast->base_expression->asMemberAccess()) { if (access->member_name && access->member_name->name) { - if (maybeVirtualMethod(access->member_name->name) || maybeFunction(access->member_name->name)) { + if (maybeVirtualMethod(access->member_name->name)) { const QByteArray expression = textOf(access); const QList<LookupItem> candidates = @@ -575,7 +551,7 @@ bool CheckSymbols::visit(CallAST *ast) } } else if (IdExpressionAST *idExpr = ast->base_expression->asIdExpression()) { if (const Name *name = idExpr->name->name) { - if (maybeVirtualMethod(name) || maybeFunction(name)) { + if (maybeVirtualMethod(name)) { NameAST *exprName = idExpr->name; if (QualifiedNameAST *q = exprName->asQualifiedName()) exprName = q->unqualified_name; @@ -675,8 +651,6 @@ void CheckSymbols::checkName(NameAST *ast, Scope *scope) Class *klass = scope->asClass(); if (hasVirtualDestructor(_context.lookupType(klass))) addUse(ast, SemanticInfo::VirtualMethodUse); - else - addUse(ast, SemanticInfo::FunctionUse); } else if (maybeType(ast->name) || maybeStatic(ast->name)) { const QList<LookupItem> candidates = _context.lookup(ast->name, scope); addTypeOrStatic(candidates, ast); @@ -705,14 +679,6 @@ bool CheckSymbols::visit(DestructorNameAST *ast) return true; } -bool CheckSymbols::visit(ParameterDeclarationAST *ast) -{ - accept(ast->type_specifier_list); - // Skip parameter name, it does not need to be colored - accept(ast->expression); - return false; -} - bool CheckSymbols::visit(QualifiedNameAST *ast) { if (ast->name) { @@ -756,8 +722,6 @@ bool CheckSymbols::visit(QualifiedNameAST *ast) if (ast->unqualified_name->asDestructorName() != 0) { if (hasVirtualDestructor(binding)) addUse(ast->unqualified_name, SemanticInfo::VirtualMethodUse); - else - addUse(ast->unqualified_name, SemanticInfo::FunctionUse); } else { addTypeOrStatic(binding->find(ast->unqualified_name->name), ast->unqualified_name); } @@ -838,8 +802,6 @@ bool CheckSymbols::visit(FunctionDefinitionAST *ast) addUse(declId, SemanticInfo::VirtualMethodUse); } else if (maybeVirtualMethod(fun->name())) { addVirtualMethod(_context.lookup(fun->name(), fun->enclosingScope()), declId, fun->argumentCount()); - } else { - addUse(declId, SemanticInfo::FunctionUse); } } } @@ -1061,49 +1023,30 @@ void CheckSymbols::addVirtualMethod(const QList<LookupItem> &candidates, NameAST if (tok.generated()) return; - enum { Match_None, Match_TooManyArgs, Match_TooFewArgs, Match_Ok } matchType = Match_None; - SemanticInfo::UseKind kind = SemanticInfo::FunctionUse; foreach (const LookupItem &r, candidates) { Symbol *c = r.declaration(); if (! c) continue; - Function *funTy = c->type()->asFunctionType(); - if (! funTy) { - //Try to find a template function - if (Template * t = r.type()->asTemplateType()) - if ((c = t->declaration())) - funTy = c->type()->asFunctionType(); - } + Function *funTy = r.type()->asFunctionType(); if (! funTy) - continue; // TODO: add diagnostic messages and color call-operators calls too? - - kind = funTy->isVirtual() ? SemanticInfo::VirtualMethodUse : SemanticInfo::FunctionUse; - if (argumentCount < funTy->minimumArgumentCount()) { - matchType = Match_TooFewArgs; - } - else if (argumentCount > funTy->argumentCount() && ! funTy->isVariadic()) { - matchType = Match_TooManyArgs; - } - else { - matchType = Match_Ok; - break; + continue; + if (! funTy->isVirtual()) + continue; + else if (argumentCount < funTy->minimumArgumentCount()) + continue; + else if (argumentCount > funTy->argumentCount()) { + if (! funTy->isVariadic()) + continue; } - } - if (matchType != Match_None) { unsigned line, column; getTokenStartPosition(startToken, &line, &column); const unsigned length = tok.length(); - // Add a diagnostic message if argument count does not match - if (matchType == Match_TooFewArgs) - warning(line, column, "Too few arguments", length); - else if (matchType == Match_TooManyArgs) - warning(line, column, "Too many arguments", length); - - const Use use(line, column, length, kind); + const Use use(line, column, length, SemanticInfo::VirtualMethodUse); addUse(use); + break; } } @@ -1177,19 +1120,6 @@ static bool sortByLinePredicate(const CheckSymbols::Use &lhs, const CheckSymbols return lhs.line < rhs.line; } -bool CheckSymbols::maybeFunction(const Name *name) const -{ - if (name) { - if (const Identifier *ident = name->identifier()) { - const QByteArray id = QByteArray::fromRawData(ident->chars(), ident->size()); - if (_potentialFunctions.contains(id)) - return true; - } - } - - return false; -} - void CheckSymbols::flush() { _lineOfLastUsage = 0; diff --git a/src/plugins/cpptools/cppchecksymbols.h b/src/plugins/cpptools/cppchecksymbols.h index 3efe7439950..56dfc541f5e 100644 --- a/src/plugins/cpptools/cppchecksymbols.h +++ b/src/plugins/cpptools/cppchecksymbols.h @@ -107,7 +107,6 @@ protected: bool maybeType(const Name *name) const; bool maybeMember(const Name *name) const; bool maybeStatic(const Name *name) const; - bool maybeFunction(const Name *name) const; bool maybeVirtualMethod(const Name *name) const; void checkName(NameAST *ast, Scope *scope = 0); @@ -143,7 +142,6 @@ protected: virtual bool visit(SimpleNameAST *ast); virtual bool visit(DestructorNameAST *ast); - virtual bool visit(ParameterDeclarationAST *ast); virtual bool visit(QualifiedNameAST *ast); virtual bool visit(TemplateIdAST *ast); @@ -171,7 +169,6 @@ private: QList<Document::DiagnosticMessage> _diagnosticMessages; QSet<QByteArray> _potentialTypes; QSet<QByteArray> _potentialMembers; - QSet<QByteArray> _potentialFunctions; QSet<QByteArray> _potentialVirtualMethods; QSet<QByteArray> _potentialStatics; QList<AST *> _astStack; diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 724f44affa9..8611e4f5f3d 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -1151,19 +1151,13 @@ void CppModelManager::updateEditor(Document::Ptr doc) QTextCursor c(ed->document()->findBlockByNumber(m.line() - 1)); const QString text = c.block().text(); - if (m.length() > 0 && m.column() + m.length() < (unsigned)text.size()) { - int column = m.column() > 0 ? m.column() - 1 : 0; - c.setPosition(c.position() + column); - c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, m.length()); - } else { - for (int i = 0; i < text.size(); ++i) { - if (! text.at(i).isSpace()) { - c.setPosition(c.position() + i); - break; - } + for (int i = 0; i < text.size(); ++i) { + if (! text.at(i).isSpace()) { + c.setPosition(c.position() + i); + break; } - c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); } + c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); sel.cursor = c; sel.format.setToolTip(m.text()); e.selections.append(sel); diff --git a/src/plugins/cpptools/cppsemanticinfo.h b/src/plugins/cpptools/cppsemanticinfo.h index acc1705424b..cf61b745592 100644 --- a/src/plugins/cpptools/cppsemanticinfo.h +++ b/src/plugins/cpptools/cppsemanticinfo.h @@ -52,8 +52,7 @@ public: FieldUse, StaticUse, VirtualMethodUse, - LabelUse, - FunctionUse + LabelUse }; typedef TextEditor::SemanticHighlighter::Result Use; diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index b442933cadf..0fc099368be 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -129,7 +129,6 @@ const char C_TYPE[] = "Type"; const char C_LOCAL[] = "Local"; const char C_FIELD[] = "Field"; const char C_STATIC[] = "Static"; -const char C_FUNCTION[] = "Function"; const char C_VIRTUAL_METHOD[] = "VirtualMethod"; const char C_KEYWORD[] = "Keyword"; const char C_OPERATOR[] = "Operator"; diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp index ece07447576..717a3f267eb 100644 --- a/src/plugins/texteditor/texteditorsettings.cpp +++ b/src/plugins/texteditor/texteditorsettings.cpp @@ -145,7 +145,6 @@ TextEditorSettings::TextEditorSettings(QObject *parent) formatDescriptions.append(FormatDescription(QLatin1String(C_FIELD), tr("Field"), Qt::darkRed)); formatDescriptions.append(FormatDescription(QLatin1String(C_STATIC), tr("Static"), Qt::darkMagenta)); - formatDescriptions.append(FormatDescription(QLatin1String(C_FUNCTION), tr("Function"))); FormatDescription virtualMethodFormatDescriptor(QLatin1String(C_VIRTUAL_METHOD), tr("Virtual Method")); virtualMethodFormatDescriptor.format().setItalic(true); formatDescriptions.append(virtualMethodFormatDescriptor); |