summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2012-03-29 15:52:05 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2012-03-29 15:53:23 +0200
commit210c191216961eefe58126af0af942302ff30cf2 (patch)
tree9c5e758d0b441d22fcd4db14cee300cb91ba87f9
parente639a2381fd755819cb93992c66dca03bb225f83 (diff)
downloadqt-creator-210c191216961eefe58126af0af942302ff30cf2.tar.gz
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 <erik.verbruggen@nokia.com>
-rw-r--r--share/qtcreator/styles/darkvim.xml1
-rw-r--r--share/qtcreator/styles/grayscale.xml1
-rw-r--r--share/qtcreator/styles/inkpot.xml1
-rw-r--r--share/qtcreator/styles/intellij.xml1
-rw-r--r--src/plugins/cppeditor/cppeditor.cpp7
-rw-r--r--src/plugins/cpptools/ModelManagerInterface.h3
-rw-r--r--src/plugins/cpptools/cppchecksymbols.cpp98
-rw-r--r--src/plugins/cpptools/cppchecksymbols.h3
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp16
-rw-r--r--src/plugins/cpptools/cppsemanticinfo.h3
-rw-r--r--src/plugins/texteditor/texteditorconstants.h1
-rw-r--r--src/plugins/texteditor/texteditorsettings.cpp1
12 files changed, 21 insertions, 115 deletions
diff --git a/share/qtcreator/styles/darkvim.xml b/share/qtcreator/styles/darkvim.xml
index a7f0f924ab..afe1d93942 100644
--- a/share/qtcreator/styles/darkvim.xml
+++ b/share/qtcreator/styles/darkvim.xml
@@ -14,7 +14,6 @@
<style name="Doxygen.Comment" foreground="#55ffff"/>
<style name="Doxygen.Tag" foreground="#00a0a0"/>
<style name="Field"/>
- <style name="Function"/>
<style name="Keyword" foreground="#ffff55"/>
<style name="Label" foreground="#ffff55"/>
<style name="LineNumber" foreground="#888888" background="#232323"/>
diff --git a/share/qtcreator/styles/grayscale.xml b/share/qtcreator/styles/grayscale.xml
index c1a29c2054..b31ecd7815 100644
--- a/share/qtcreator/styles/grayscale.xml
+++ b/share/qtcreator/styles/grayscale.xml
@@ -8,7 +8,6 @@
<style name="Doxygen.Comment" foreground="#808080"/>
<style name="Doxygen.Tag" foreground="#808080" italic="true"/>
<style name="Field"/>
- <style name="Function"/>
<style name="Keyword" bold="true"/>
<style name="Label"/>
<style name="LineNumber" foreground="#c7c4c1" background="#efebe7"/>
diff --git a/share/qtcreator/styles/inkpot.xml b/share/qtcreator/styles/inkpot.xml
index 730c170f56..7b24f8ada8 100644
--- a/share/qtcreator/styles/inkpot.xml
+++ b/share/qtcreator/styles/inkpot.xml
@@ -19,7 +19,6 @@
<style name="Doxygen.Comment" foreground="#737dd5"/>
<style name="Doxygen.Tag" foreground="#4e5ab3"/>
<style name="Field" bold="true"/>
- <style name="Function"/>
<style name="Keyword" foreground="#808bed"/>
<style name="Label" foreground="#e76000"/>
<style name="LineNumber" foreground="#8b8bcd" background="#2e2e2e"/>
diff --git a/share/qtcreator/styles/intellij.xml b/share/qtcreator/styles/intellij.xml
index dfe5f7afd5..b98500b620 100644
--- a/share/qtcreator/styles/intellij.xml
+++ b/share/qtcreator/styles/intellij.xml
@@ -8,7 +8,6 @@
<style name="Doxygen.Comment" foreground="#808080" italic="true"/>
<style name="Doxygen.Tag" foreground="#808080" bold="true" italic="true"/>
<style name="Field" foreground="#660e7a" bold="true"/>
- <style name="Function" foreground="#000000"/>
<style name="Keyword" foreground="#000080" bold="true"/>
<style name="Label" foreground="#800000" bold="true"/>
<style name="Local" foreground="#000000"/>
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 566b5b634c..b18cc1dacb 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 8bab7086e8..b873e880fe 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 2330e037c0..a2d1d6dcf0 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 3efe743995..56dfc541f5 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 724f44affa..8611e4f5f3 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 acc1705424..cf61b74559 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 b442933cad..0fc099368b 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 ece0744757..717a3f267e 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);