diff options
author | Marco Bubke <marco.bubke@qt.io> | 2016-11-30 15:29:36 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2016-12-07 11:39:11 +0000 |
commit | 15de02ea0c92948e1c51b5da11541c2d382b79ca (patch) | |
tree | d2e9b0c10aea7f06ed0d31a1402f0b93f979dd6b /src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp | |
parent | 636eea99f498bdb6542610a160ce4e8fa9be0cfe (diff) |
Clang: Add refactoring support for unsaved content
We need the generated UI header but we don't have a build directory. So we
provide clang with in memory represations of the file.
Change-Id: Ie9db97bbea2222b0203a0457baa1f1fc7ad97213
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp')
-rw-r--r-- | src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp b/src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp index a97658db0d..c5678511aa 100644 --- a/src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp +++ b/src/plugins/clangrefactoring/clangqueryprojectsfindfilter.cpp @@ -70,7 +70,7 @@ void ClangQueryProjectsFindFilter::findAll(const QString &queryText, Core::FindF auto message = createMessage(queryText); - refactoringClient.setExpectedResultCount(message.fileContainers().size()); + refactoringClient.setExpectedResultCount(message.sources().size()); server.requestSourceRangesAndDiagnosticsForQueryMessage(std::move(message)); } @@ -100,6 +100,12 @@ SearchHandle *ClangQueryProjectsFindFilter::searchHandleForTestOnly() const return searchHandle.get(); } +void ClangQueryProjectsFindFilter::setUnsavedContent( + std::vector<ClangBackEnd::V2::FileContainer> &&unsavedContent) +{ + this->unsavedContent = std::move(unsavedContent); +} + namespace { Utils::SmallStringVector createCommandLine(CppTools::ProjectPart *projectPart, @@ -118,13 +124,13 @@ Utils::SmallStringVector createCommandLine(CppTools::ProjectPart *projectPart, } std::vector<ClangBackEnd::V2::FileContainer> -createFileContainers(const std::vector<CppTools::ProjectPart::Ptr> &projectParts) +createSources(const std::vector<CppTools::ProjectPart::Ptr> &projectParts) { - std::vector<ClangBackEnd::V2::FileContainer> fileContainers; + std::vector<ClangBackEnd::V2::FileContainer> sources; for (const CppTools::ProjectPart::Ptr &projectPart : projectParts) { for (const CppTools::ProjectFile &projectFile : projectPart->files) { - fileContainers.emplace_back(ClangBackEnd::FilePath(projectFile.path), + sources.emplace_back(ClangBackEnd::FilePath(projectFile.path), "", createCommandLine(projectPart.data(), projectFile.path, @@ -132,15 +138,17 @@ createFileContainers(const std::vector<CppTools::ProjectPart::Ptr> &projectParts } } - return fileContainers; + return sources; } + } ClangBackEnd::RequestSourceRangesAndDiagnosticsForQueryMessage ClangQueryProjectsFindFilter::createMessage(const QString &queryText) const { return ClangBackEnd::RequestSourceRangesAndDiagnosticsForQueryMessage( Utils::SmallString(queryText), - createFileContainers(projectParts)); + createSources(projectParts), + Utils::clone(unsavedContent)); } |