This revision was automatically updated to reflect the committed changes. Closed by commit rGdf537bef6393: Use pseudoparser-based folding ranges in ClangdServer. (authored by usaxena95).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D130011/new/ https://reviews.llvm.org/D130011 Files: clang-tools-extra/clangd/ClangdServer.cpp Index: clang-tools-extra/clangd/ClangdServer.cpp =================================================================== --- clang-tools-extra/clangd/ClangdServer.cpp +++ clang-tools-extra/clangd/ClangdServer.cpp @@ -834,14 +834,17 @@ void ClangdServer::foldingRanges(llvm::StringRef File, Callback<std::vector<FoldingRange>> CB) { - auto Action = - [CB = std::move(CB)](llvm::Expected<InputsAndAST> InpAST) mutable { - if (!InpAST) - return CB(InpAST.takeError()); - CB(clangd::getFoldingRanges(InpAST->AST)); - }; - WorkScheduler->runWithAST("FoldingRanges", File, std::move(Action), - Transient); + auto Code = getDraft(File); + if (!Code) + return CB(llvm::make_error<LSPError>( + "trying to compute folding ranges for non-added document", + ErrorCode::InvalidParams)); + auto Action = [CB = std::move(CB), Code = std::move(*Code)]() mutable { + CB(clangd::getFoldingRanges(Code)); + }; + // We want to make sure folding ranges are always available for all the open + // files, hence prefer runQuick to not wait for operations on other files. + WorkScheduler->runQuick("FoldingRanges", File, std::move(Action)); } void ClangdServer::findType(llvm::StringRef File, Position Pos,
Index: clang-tools-extra/clangd/ClangdServer.cpp =================================================================== --- clang-tools-extra/clangd/ClangdServer.cpp +++ clang-tools-extra/clangd/ClangdServer.cpp @@ -834,14 +834,17 @@ void ClangdServer::foldingRanges(llvm::StringRef File, Callback<std::vector<FoldingRange>> CB) { - auto Action = - [CB = std::move(CB)](llvm::Expected<InputsAndAST> InpAST) mutable { - if (!InpAST) - return CB(InpAST.takeError()); - CB(clangd::getFoldingRanges(InpAST->AST)); - }; - WorkScheduler->runWithAST("FoldingRanges", File, std::move(Action), - Transient); + auto Code = getDraft(File); + if (!Code) + return CB(llvm::make_error<LSPError>( + "trying to compute folding ranges for non-added document", + ErrorCode::InvalidParams)); + auto Action = [CB = std::move(CB), Code = std::move(*Code)]() mutable { + CB(clangd::getFoldingRanges(Code)); + }; + // We want to make sure folding ranges are always available for all the open + // files, hence prefer runQuick to not wait for operations on other files. + WorkScheduler->runQuick("FoldingRanges", File, std::move(Action)); } void ClangdServer::findType(llvm::StringRef File, Position Pos,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits