Clang: Add Symbol Indexing

It is a first step and now a database is generated if you start QtCreator.
Some code is now shared with the PchManager which can be improved in the
future.

Change-Id: Ic267fe7960f6c455d91832859a673ce98f269aa2
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-08-17 12:44:52 +02:00
parent 8488ce627b
commit 3adb71d45e
65 changed files with 1195 additions and 175 deletions

View File

@@ -27,6 +27,7 @@
#include "symbolfinder.h"
#include "clangquery.h"
#include "symbolindexing.h"
#include <refactoringclientinterface.h>
#include <clangrefactoringmessages.h>
@@ -38,7 +39,10 @@
namespace ClangBackEnd {
RefactoringServer::RefactoringServer()
RefactoringServer::RefactoringServer(SymbolIndexingInterface &symbolIndexing,
FilePathCache<std::mutex> &filePathCache)
: m_symbolIndexing(symbolIndexing),
m_filePathCache(filePathCache)
{
m_pollTimer.setInterval(100);
@@ -88,7 +92,17 @@ void RefactoringServer::requestSourceRangesForQueryMessage(RequestSourceRangesFo
{
gatherSourceRangesForQueryMessages(message.takeSources(),
message.takeUnsavedContent(),
message.takeQuery());
message.takeQuery());
}
void RefactoringServer::updatePchProjectParts(UpdatePchProjectPartsMessage &&message)
{
m_symbolIndexing.updateProjectParts(message.takeProjectsParts(), message.takeGeneratedFiles());
}
void RefactoringServer::removePchProjectParts(RemovePchProjectPartsMessage &&)
{
}
void RefactoringServer::cancel()