//===--- SyncAPI.h - Sync version of ClangdServer's API ----------*- C++-*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file contains synchronous versions of ClangdServer's async API. We // deliberately don't expose the sync API outside tests to encourage using the // async versions in clangd code. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_SYNCAPI_H #define LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_SYNCAPI_H #include "ClangdServer.h" #include "index/Index.h" namespace clang { namespace clangd { // Calls addDocument and then blockUntilIdleForTest. void runAddDocument(ClangdServer &Server, PathRef File, StringRef Contents, WantDiagnostics WantDiags = WantDiagnostics::Auto); llvm::Expected runCodeComplete(ClangdServer &Server, PathRef File, Position Pos, clangd::CodeCompleteOptions Opts); llvm::Expected runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos); llvm::Expected> runFindDefinitions(ClangdServer &Server, PathRef File, Position Pos); llvm::Expected> runFindDocumentHighlights(ClangdServer &Server, PathRef File, Position Pos); llvm::Expected> runRename(ClangdServer &Server, PathRef File, Position Pos, StringRef NewName); std::string runDumpAST(ClangdServer &Server, PathRef File); llvm::Expected> runWorkspaceSymbols(ClangdServer &Server, StringRef Query, int Limit); Expected> runDocumentSymbols(ClangdServer &Server, PathRef File); SymbolSlab runFuzzyFind(const SymbolIndex &Index, StringRef Query); SymbolSlab runFuzzyFind(const SymbolIndex &Index, const FuzzyFindRequest &Req); RefSlab getRefs(const SymbolIndex &Index, SymbolID ID); } // namespace clangd } // namespace clang #endif // LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_SYNCAPI_H