forked from qt-creator/qt-creator
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:
@@ -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 ¶met
|
||||
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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user