diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2016-11-15 15:38:12 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2016-11-15 15:30:33 +0000 |
commit | 9c7ff5199f77ad668eb48891c3d917a97ca7249a (patch) | |
tree | 4b9f062291d1932bda9c590bd169061df4da1f30 /src/tools/clangrefactoringbackend/source/refactoringserver.h | |
parent | 96187594b52b70951724637bf93ae7ba6cea8733 (diff) | |
download | qt-creator-9c7ff5199f77ad668eb48891c3d917a97ca7249a.tar.gz |
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 <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/source/refactoringserver.h')
-rw-r--r-- | src/tools/clangrefactoringbackend/source/refactoringserver.h | 21 |
1 files changed, 17 insertions, 4 deletions
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 <refactoringserverinterface.h> +#include <future> +#include <vector> + namespace ClangBackEnd { +class SourceRangesAndDiagnosticsForQueryMessage; + +namespace V2 { +class FileContainer; +} + class RefactoringServer : public RefactoringServerInterface { + using Future = std::future<SourceRangesAndDiagnosticsForQueryMessage>; public: RefactoringServer(); void end() override; void requestSourceLocationsForRenamingMessage(RequestSourceLocationsForRenamingMessage &&message) override; + void requestSourceRangesAndDiagnosticsForQueryMessage(RequestSourceRangesAndDiagnosticsForQueryMessage &&message) override; + +private: + void gatherSourceRangesAndDiagnosticsForQueryMessage(std::vector<V2::FileContainer> &&fileContainers, + Utils::SmallString &&query); + std::size_t waitForNewSourceRangesAndDiagnosticsForQueryMessage(std::vector<Future> &futures); }; } // namespace ClangBackEnd - -#endif // CLANGBACKEND_REFACTORINGSERVER_H |