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

@@ -32,8 +32,7 @@
#include <refactoringengine.h>
#include <refactoringconnectionclient.h>
#include <sourcelocationsforrenamingmessage.h>
#include <sourcerangesanddiagnosticsforquerymessage.h>
#include <clangrefactoringclientmessages.h>
#include <cpptools/clangcompileroptionsbuilder.h>
#include <cpptools/projectpart.h>
@@ -51,6 +50,7 @@ using ClangRefactoring::RefactoringEngine;
using ClangBackEnd::SourceLocationsForRenamingMessage;
using ClangBackEnd::SourceRangesAndDiagnosticsForQueryMessage;
using ClangBackEnd::SourceRangesForQueryMessage;
using testing::_;
using testing::Pair;
@@ -83,12 +83,10 @@ protected:
{{{42u, clangBackEndFilePath.clone()}},
{{42u, 1, 1, 0}, {42u, 2, 5, 10}}},
1};
SourceRangesAndDiagnosticsForQueryMessage queryResultMessage{{{{42u, clangBackEndFilePath.clone()}},
{{42u, 1, 1, 0, 1, 5, 4, ""},
{42u, 2, 1, 5, 2, 5, 10, ""}}},
{}};
SourceRangesAndDiagnosticsForQueryMessage emptyQueryResultMessage{{{},{}},
{}};
SourceRangesForQueryMessage queryResultMessage{{{{42u, clangBackEndFilePath.clone()}},
{{42u, 1, 1, 0, 1, 5, 4, ""},
{42u, 2, 1, 5, 2, 5, 10, ""}}}};
SourceRangesForQueryMessage emptyQueryResultMessage{{{},{}}};
};
TEST_F(RefactoringClient, SourceLocationsForRenaming)
@@ -143,7 +141,7 @@ TEST_F(RefactoringClient, CallAddResultsForEmptyQueryMessage)
EXPECT_CALL(mockSearchHandle, addResult(_ ,_ ,_))
.Times(0);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(emptyQueryResultMessage));
client.sourceRangesForQueryMessage(std::move(emptyQueryResultMessage));
}
TEST_F(RefactoringClient, CallAddResultsForQueryMessage)
@@ -151,7 +149,7 @@ TEST_F(RefactoringClient, CallAddResultsForQueryMessage)
EXPECT_CALL(mockSearchHandle, addResult(_ ,_ ,_))
.Times(2);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
}
TEST_F(RefactoringClient, CallFinishSearchForEmptyQueryMessage)
@@ -159,7 +157,7 @@ TEST_F(RefactoringClient, CallFinishSearchForEmptyQueryMessage)
EXPECT_CALL(mockSearchHandle, finishSearch())
.Times(1);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(emptyQueryResultMessage));
client.sourceRangesForQueryMessage(std::move(emptyQueryResultMessage));
}
TEST_F(RefactoringClient, CallFinishSearchQueryMessage)
@@ -167,7 +165,7 @@ TEST_F(RefactoringClient, CallFinishSearchQueryMessage)
EXPECT_CALL(mockSearchHandle, finishSearch())
.Times(1);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
}
TEST_F(RefactoringClient, CallFinishSearchForTwoQueryMessages)
@@ -177,8 +175,8 @@ TEST_F(RefactoringClient, CallFinishSearchForTwoQueryMessages)
EXPECT_CALL(mockSearchHandle, finishSearch())
.Times(1);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
}
TEST_F(RefactoringClient, CallSetExpectedResultCountInSearchHandle)
@@ -191,7 +189,7 @@ TEST_F(RefactoringClient, CallSetExpectedResultCountInSearchHandle)
TEST_F(RefactoringClient, ResultCounterIsOneAfterQueryMessage)
{
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
ASSERT_THAT(client.resultCounter(), 1);
}
@@ -201,30 +199,28 @@ TEST_F(RefactoringClient, ResultCounterIsSetInSearchHandleToOne)
EXPECT_CALL(mockSearchHandle, setResultCounter(1))
.Times(1);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
}
TEST_F(RefactoringClient, ResultCounterIsSetInSearchHandleToTwo)
{
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
EXPECT_CALL(mockSearchHandle, setResultCounter(2))
.Times(1);
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
}
TEST_F(RefactoringClient, ResultCounterIsZeroAfterSettingExpectedResultCount)
{
client.sourceRangesAndDiagnosticsForQueryMessage(std::move(queryResultMessage));
client.sourceRangesForQueryMessage(std::move(queryResultMessage));
client.setExpectedResultCount(3);
ASSERT_THAT(client.resultCounter(), 0);
}
TEST_F(RefactoringClient, ConvertFilePaths)
{
std::unordered_map<uint, ClangBackEnd::FilePath> filePaths{{42u, clangBackEndFilePath.clone()}};