diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2012-02-07 15:09:08 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2012-02-08 14:30:14 +0100 |
commit | dbc3332b8e1442c0903e129586c08986ce752ff9 (patch) | |
tree | ec9b94df1464e6693c09fb6638a38a7095722386 /src/plugins/cppeditor/cppchecksymbols.h | |
parent | b64d103bfbe5fea3283e8a3c014f4a48dca3c482 (diff) | |
download | qt-creator-dbc3332b8e1442c0903e129586c08986ce752ff9.tar.gz |
C++: Moved completion/highlighting into the model manager.
This way the editor does not need to know all the details of
instantiating or maintaining classes for highlighting and/or completion,
it can just ask the model manager. The change also enables different
highlighting- or completion-engines without changes to the cppeditor.
Change-Id: I8000d9d9fe446b292defddb2295493cf77d0f14a
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
Diffstat (limited to 'src/plugins/cppeditor/cppchecksymbols.h')
-rw-r--r-- | src/plugins/cppeditor/cppchecksymbols.h | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/src/plugins/cppeditor/cppchecksymbols.h b/src/plugins/cppeditor/cppchecksymbols.h deleted file mode 100644 index 6bcf4933bd..0000000000 --- a/src/plugins/cppeditor/cppchecksymbols.h +++ /dev/null @@ -1,176 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** -** GNU Lesser General Public License Usage -** -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** Other Usage -** -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -**************************************************************************/ - -#ifndef CPLUSPLUS_CHECKSYMBOLS_H -#define CPLUSPLUS_CHECKSYMBOLS_H - -#include "cppsemanticinfo.h" - -#include <cplusplus/CppDocument.h> -#include <cplusplus/LookupContext.h> -#include <cplusplus/TypeOfExpression.h> - -#include <ASTVisitor.h> -#include <QtCore/QSet> -#include <QtCore/QFuture> -#include <QtCore/QtConcurrentRun> - -namespace CPlusPlus { - -class CheckSymbols: - protected ASTVisitor, - public QRunnable, - public QFutureInterface<CppEditor::Internal::SemanticInfo::Use> -{ -public: - virtual ~CheckSymbols(); - - typedef CppEditor::Internal::SemanticInfo::Use Use; - typedef CppEditor::Internal::SemanticInfo::UseKind UseKind; - - virtual void run(); - - typedef QFuture<Use> Future; - - Future start() - { - this->setRunnable(this); - this->reportStarted(); - Future future = this->future(); - QThreadPool::globalInstance()->start(this, QThread::LowestPriority); - return future; - } - - static Future go(Document::Ptr doc, const LookupContext &context); - - static QMap<int, QVector<Use> > chunks(const QFuture<Use> &future, int from, int to) - { - QMap<int, QVector<Use> > chunks; - - for (int i = from; i < to; ++i) { - const Use use = future.resultAt(i); - if (! use.line) - continue; // skip it, it's an invalid use. - - const int blockNumber = use.line - 1; - chunks[blockNumber].append(use); - } - - return chunks; - } - -protected: - using ASTVisitor::visit; - using ASTVisitor::endVisit; - - CheckSymbols(Document::Ptr doc, const LookupContext &context); - - bool hasVirtualDestructor(Class *klass) const; - bool hasVirtualDestructor(ClassOrNamespace *binding) const; - - bool warning(unsigned line, unsigned column, const QString &text, unsigned length = 0); - bool warning(AST *ast, const QString &text); - - QByteArray textOf(AST *ast) const; - - bool maybeType(const Name *name) const; - bool maybeMember(const Name *name) const; - bool maybeStatic(const Name *name) const; - bool maybeVirtualMethod(const Name *name) const; - - void checkName(NameAST *ast, Scope *scope = 0); - void checkNamespace(NameAST *name); - - void addUse(const Use &use); - void addUse(unsigned tokenIndex, UseKind kind); - void addUse(NameAST *name, UseKind kind); - - void addType(ClassOrNamespace *b, NameAST *ast); - - void addTypeOrStatic(const QList<LookupItem> &candidates, NameAST *ast); - void addStatic(const QList<LookupItem> &candidates, NameAST *ast); - void addClassMember(const QList<LookupItem> &candidates, NameAST *ast); - void addVirtualMethod(const QList<LookupItem> &candidates, NameAST *ast, unsigned argumentCount); - - bool isTemplateClass(Symbol *s) const; - - Scope *enclosingScope() const; - FunctionDefinitionAST *enclosingFunctionDefinition(bool skipTopOfStack = false) const; - TemplateDeclarationAST *enclosingTemplateDeclaration() const; - - virtual bool preVisit(AST *); - virtual void postVisit(AST *); - - virtual bool visit(NamespaceAST *); - virtual bool visit(UsingDirectiveAST *); - virtual bool visit(SimpleDeclarationAST *); - virtual bool visit(NamedTypeSpecifierAST *); - virtual bool visit(ElaboratedTypeSpecifierAST *ast); - - virtual bool visit(EnumeratorAST *); - - virtual bool visit(SimpleNameAST *ast); - virtual bool visit(DestructorNameAST *ast); - virtual bool visit(QualifiedNameAST *ast); - virtual bool visit(TemplateIdAST *ast); - - virtual bool visit(TypenameTypeParameterAST *ast); - virtual bool visit(TemplateTypeParameterAST *ast); - - virtual bool visit(FunctionDefinitionAST *ast); - virtual bool visit(MemberAccessAST *ast); - virtual bool visit(CallAST *ast); - - virtual bool visit(MemInitializerAST *ast); - - NameAST *declaratorId(DeclaratorAST *ast) const; - - void flush(); - -private: - Document::Ptr _doc; - LookupContext _context; - TypeOfExpression typeOfExpression; - QString _fileName; - QList<Document::DiagnosticMessage> _diagnosticMessages; - QSet<QByteArray> _potentialTypes; - QSet<QByteArray> _potentialMembers; - QSet<QByteArray> _potentialVirtualMethods; - QSet<QByteArray> _potentialStatics; - QList<AST *> _astStack; - QVector<Use> _usages; - unsigned _lineOfLastUsage; -}; - -} // namespace CPlusPlus - -#endif // CPLUSPLUS_CHECKSYMBOLS_H |