Clang: Add clang query pane

We now support highlighting for an example text and for the query.

Change-Id: I88c415ff871cf3e4c2d4fc83d60a8555bf0ce08a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-07-03 12:35:58 +02:00
committed by Tim Jenssen
parent 8c4127ebac
commit a31eae4d0a
75 changed files with 2950 additions and 484 deletions

View File

@@ -25,32 +25,40 @@
#include "refactoringclient.h"
#include "clangqueryhighlighter.h"
#include "clangqueryexamplehighlighter.h"
#include <refactoringconnectionclient.h>
#include <sourcelocationsforrenamingmessage.h>
#include <sourcerangesanddiagnosticsforquerymessage.h>
#include <clangrefactoringmessages.h>
namespace ClangRefactoring {
void RefactoringClient::alive()
{
if (connectionClient)
connectionClient->resetProcessAliveTimer();
if (m_connectionClient)
m_connectionClient->resetProcessAliveTimer();
}
void RefactoringClient::sourceLocationsForRenamingMessage(
ClangBackEnd::SourceLocationsForRenamingMessage &&message)
{
localRenamingCallback(message.symbolName().toQString(),
m_localRenamingCallback(message.symbolName().toQString(),
message.sourceLocations(),
message.textDocumentRevision());
refactoringEngine->setUsable(true);
m_refactoringEngine->setUsable(true);
}
void RefactoringClient::sourceRangesAndDiagnosticsForQueryMessage(
ClangBackEnd::SourceRangesAndDiagnosticsForQueryMessage &&message)
{
++resultCounter_;
m_clangQueryExampleHighlighter->setSourceRanges(message.takeSourceRanges());
m_clangQueryHighlighter->setDiagnostics(message.diagnostics());
}
void RefactoringClient::sourceRangesForQueryMessage(ClangBackEnd::SourceRangesForQueryMessage &&message)
{
++m_resultCounter;
addSearchResults(message.sourceRanges());
setResultCounterAndSendSearchIsFinishedIfFinished();
}
@@ -58,50 +66,60 @@ void RefactoringClient::sourceRangesAndDiagnosticsForQueryMessage(
void RefactoringClient::setLocalRenamingCallback(
CppTools::RefactoringEngineInterface::RenameCallback &&localRenamingCallback)
{
this->localRenamingCallback = std::move(localRenamingCallback);
m_localRenamingCallback = std::move(localRenamingCallback);
}
void RefactoringClient::setRefactoringEngine(RefactoringEngine *refactoringEngine)
{
this->refactoringEngine = refactoringEngine;
m_refactoringEngine = refactoringEngine;
}
void RefactoringClient::setSearchHandle(SearchHandle *searchHandle)
{
this->searchHandle_ = searchHandle;
m_searchHandle = searchHandle;
}
SearchHandle *RefactoringClient::searchHandle() const
{
return searchHandle_;
return m_searchHandle;
}
void RefactoringClient::setClangQueryExampleHighlighter(ClangQueryExampleHighlighter *highlighter)
{
m_clangQueryExampleHighlighter = highlighter;
}
void RefactoringClient::setClangQueryHighlighter(ClangQueryHighlighter *highlighter)
{
m_clangQueryHighlighter = highlighter;
}
bool RefactoringClient::hasValidLocalRenamingCallback() const
{
return bool(localRenamingCallback);
return bool(m_localRenamingCallback);
}
void RefactoringClient::setExpectedResultCount(uint count)
{
expectedResultCount_ = count;
resultCounter_ = 0;
searchHandle_->setExpectedResultCount(count);
m_expectedResultCount = count;
m_resultCounter = 0;
m_searchHandle->setExpectedResultCount(count);
}
uint RefactoringClient::expectedResultCount() const
{
return expectedResultCount_;
return m_expectedResultCount;
}
uint RefactoringClient::resultCounter() const
{
return resultCounter_;
return m_resultCounter;
}
void RefactoringClient::setRefactoringConnectionClient(
ClangBackEnd::RefactoringConnectionClient *connectionClient)
{
this->connectionClient = connectionClient;
m_connectionClient = connectionClient;
}
std::unordered_map<uint, QString> RefactoringClient::convertFilePaths(
@@ -135,7 +153,7 @@ void RefactoringClient::addSearchResults(const ClangBackEnd::SourceRangesContain
void RefactoringClient::addSearchResult(const ClangBackEnd::SourceRangeWithTextContainer &sourceRangeWithText,
std::unordered_map<uint, QString> &filePaths)
{
searchHandle_->addResult(filePaths[sourceRangeWithText.fileHash()],
m_searchHandle->addResult(filePaths[sourceRangeWithText.fileHash()],
sourceRangeWithText.text(),
{{int(sourceRangeWithText.start().line()),
int(sourceRangeWithText.start().column() - 1),
@@ -147,9 +165,9 @@ void RefactoringClient::addSearchResult(const ClangBackEnd::SourceRangeWithTextC
void RefactoringClient::setResultCounterAndSendSearchIsFinishedIfFinished()
{
searchHandle_->setResultCounter(resultCounter_);
if (resultCounter_ == expectedResultCount_)
searchHandle_->finishSearch();
m_searchHandle->setResultCounter(m_resultCounter);
if (m_resultCounter == m_expectedResultCount)
m_searchHandle->finishSearch();
}
} // namespace ClangRefactoring