From a31eae4d0ad1ffd5a06cd5beff9e16473f929615 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 3 Jul 2017 12:35:58 +0200 Subject: Clang: Add clang query pane We now support highlighting for an example text and for the query. Change-Id: I88c415ff871cf3e4c2d4fc83d60a8555bf0ce08a Reviewed-by: Tim Jenssen --- src/plugins/clangrefactoring/refactoringclient.cpp | 62 ++++++++++++++-------- 1 file changed, 40 insertions(+), 22 deletions(-) (limited to 'src/plugins/clangrefactoring/refactoringclient.cpp') diff --git a/src/plugins/clangrefactoring/refactoringclient.cpp b/src/plugins/clangrefactoring/refactoringclient.cpp index 4cb954e231..e4904b53cc 100644 --- a/src/plugins/clangrefactoring/refactoringclient.cpp +++ b/src/plugins/clangrefactoring/refactoringclient.cpp @@ -25,32 +25,40 @@ #include "refactoringclient.h" +#include "clangqueryhighlighter.h" +#include "clangqueryexamplehighlighter.h" + #include -#include -#include +#include 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 RefactoringClient::convertFilePaths( @@ -135,7 +153,7 @@ void RefactoringClient::addSearchResults(const ClangBackEnd::SourceRangesContain void RefactoringClient::addSearchResult(const ClangBackEnd::SourceRangeWithTextContainer &sourceRangeWithText, std::unordered_map &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 -- cgit v1.2.1