forked from qt-creator/qt-creator
		
	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>
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user