CppEditor: Move static symbol finder instance to CppTools

...to it can be reused by other clients more easily. Also, in a
follow-up change it will have a project part dependency that can be
cleared inside the CppModelManager more easily.

Change-Id: Ic9f2ce5212a94fd05ab0571e9ad99d0a25f5bc5c
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-10-09 17:42:56 +02:00
parent b4993e142d
commit 6ced48ea89
4 changed files with 16 additions and 7 deletions

View File

@@ -405,10 +405,10 @@ void CppFindReferences::searchAgain()
}
namespace {
class SymbolFinder : public SymbolVisitor
class UidSymbolFinder : public SymbolVisitor
{
public:
SymbolFinder(const QList<QByteArray> &uid) : m_uid(uid), m_index(0), m_result(0) { }
UidSymbolFinder(const QList<QByteArray> &uid) : m_uid(uid), m_index(0), m_result(0) { }
Symbol *result() const { return m_result; }
bool preVisit(Symbol *symbol)
@@ -460,7 +460,7 @@ Symbol *CppFindReferences::findSymbol(const CppFindReferencesParameters &paramet
doc->check();
// find matching symbol in new document and return the new parameters
SymbolFinder finder(parameters.symbolId);
UidSymbolFinder finder(parameters.symbolId);
finder.accept(doc->globalNamespace());
if (finder.result()) {
*context = LookupContext(doc, snapshot);

View File

@@ -44,6 +44,7 @@
#include "cpptoolsplugin.h"
#include "cpptoolsreuse.h"
#include "editordocumenthandle.h"
#include "symbolfinder.h"
#include <coreplugin/documentmanager.h>
#include <coreplugin/icore.h>
@@ -163,6 +164,8 @@ public:
CppFindReferences *m_findReferences;
SymbolFinder m_symbolFinder;
bool m_enableGC;
QTimer m_delayedGcTimer;
};
@@ -1272,4 +1275,9 @@ void CppModelManager::enableGarbageCollector(bool enable)
d->m_enableGC = enable;
}
SymbolFinder *CppModelManager::symbolFinder()
{
return &d->m_symbolFinder;
}
} // namespace CppTools

View File

@@ -58,6 +58,7 @@ class BaseEditorDocumentProcessor;
class CppCompletionAssistProvider;
class CppEditorDocumentHandle;
class CppIndexingSupport;
class SymbolFinder;
class WorkingCopy;
namespace Internal {
@@ -161,6 +162,8 @@ public:
void enableGarbageCollector(bool enable);
SymbolFinder *symbolFinder();
static QSet<QString> timeStampModifiedFiles(const QList<Document::Ptr> &documentsToCheck);
static Internal::CppSourceProcessor *createSourceProcessor();