From 9c7ff5199f77ad668eb48891c3d917a97ca7249a Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Tue, 15 Nov 2016 15:38:12 +0100 Subject: Clang: Add clang query Clang query is mechanism to use AST matcher to search for code. Think about regular expression but in the context of AST. So you get a semantic search tool for C++. Change-Id: I72e882c5b53a0c52f352a3664847c4c3e4f6fc2e Reviewed-by: Tim Jenssen --- .../source/refactoringserver.h | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/tools/clangrefactoringbackend/source/refactoringserver.h') diff --git a/src/tools/clangrefactoringbackend/source/refactoringserver.h b/src/tools/clangrefactoringbackend/source/refactoringserver.h index 883a385a95..47615a9f3f 100644 --- a/src/tools/clangrefactoringbackend/source/refactoringserver.h +++ b/src/tools/clangrefactoringbackend/source/refactoringserver.h @@ -23,22 +23,35 @@ ** ****************************************************************************/ -#ifndef CLANGBACKEND_REFACTORINGSERVER_H -#define CLANGBACKEND_REFACTORINGSERVER_H +#pragma once #include +#include +#include + namespace ClangBackEnd { +class SourceRangesAndDiagnosticsForQueryMessage; + +namespace V2 { +class FileContainer; +} + class RefactoringServer : public RefactoringServerInterface { + using Future = std::future; public: RefactoringServer(); void end() override; void requestSourceLocationsForRenamingMessage(RequestSourceLocationsForRenamingMessage &&message) override; + void requestSourceRangesAndDiagnosticsForQueryMessage(RequestSourceRangesAndDiagnosticsForQueryMessage &&message) override; + +private: + void gatherSourceRangesAndDiagnosticsForQueryMessage(std::vector &&fileContainers, + Utils::SmallString &&query); + std::size_t waitForNewSourceRangesAndDiagnosticsForQueryMessage(std::vector &futures); }; } // namespace ClangBackEnd - -#endif // CLANGBACKEND_REFACTORINGSERVER_H -- cgit v1.2.1