//===--- SyncAPI.h - Sync version of ClangdServer's API ----------*- C++-*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // 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, StringRef Version = "null", WantDiagnostics WantDiags = WantDiagnostics::Auto, bool ForceRebuild = false); llvm::Expected runCodeComplete(ClangdServer &Server, PathRef File, Position Pos, clangd::CodeCompleteOptions Opts); llvm::Expected runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos); llvm::Expected> runLocateSymbolAt(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, const clangd::RenameOptions &RenameOpts); llvm::Expected runPrepareRename(ClangdServer &Server, PathRef File, Position Pos, llvm::Optional NewName, const clangd::RenameOptions &RenameOpts); llvm::Expected runFormatFile(ClangdServer &Server, PathRef File, StringRef Code); SymbolSlab runFuzzyFind(const SymbolIndex &Index, StringRef Query); SymbolSlab runFuzzyFind(const SymbolIndex &Index, const FuzzyFindRequest &Req); RefSlab getRefs(const SymbolIndex &Index, SymbolID ID); llvm::Expected> runSemanticRanges(ClangdServer &Server, PathRef File, const std::vector &Pos); llvm::Expected> runSwitchHeaderSource(ClangdServer &Server, PathRef File); llvm::Error runCustomAction(ClangdServer &Server, PathRef File, llvm::function_ref); } // namespace clangd } // namespace clang #endif // LLVM_CLANG_TOOLS_EXTRA_UNITTESTS_CLANGD_SYNCAPI_H