kbobyrev created this revision. kbobyrev added reviewers: kadircet, nridge. Herald added subscribers: usaxena95, arphaman. kbobyrev requested review of this revision. Herald added subscribers: cfe-commits, MaskRay, ilya-biryukov. Herald added a project: clang-tools-extra.
Related discussion: https://github.com/clangd/clangd/discussions/761 Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D101902 Files: clang-tools-extra/clangd/ClangdLSPServer.cpp clang-tools-extra/clangd/ClangdLSPServer.h clang-tools-extra/clangd/tool/ClangdMain.cpp Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -292,6 +292,14 @@ init(100), }; +opt<int> LimitReferences{ + "limit-references", + cat(Features), + desc("Limit the number of references returned by clangd. " + "0 means no limit (default=1000)"), + init(1000), +}; + list<std::string> TweakList{ "tweaks", cat(Features), @@ -821,6 +829,7 @@ } #endif Opts.BackgroundIndex = EnableBackgroundIndex; + Opts.LimitReferences = LimitReferences; auto PAI = createProjectAwareIndex(loadExternalIndex, Sync); if (StaticIdx) { IdxStack.emplace_back(std::move(StaticIdx)); Index: clang-tools-extra/clangd/ClangdLSPServer.h =================================================================== --- clang-tools-extra/clangd/ClangdLSPServer.h +++ clang-tools-extra/clangd/ClangdLSPServer.h @@ -65,6 +65,9 @@ /// Enable preview of InlayHints feature. bool InlayHints = false; + + /// Limit the number of references returned (0 means no limit). + size_t LimitReferences = 0; }; ClangdLSPServer(Transport &Transp, const ThreadsafeFS &TFS, Index: clang-tools-extra/clangd/ClangdLSPServer.cpp =================================================================== --- clang-tools-extra/clangd/ClangdLSPServer.cpp +++ clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -1264,7 +1264,7 @@ void ClangdLSPServer::onReference(const ReferenceParams &Params, Callback<std::vector<Location>> Reply) { Server->findReferences( - Params.textDocument.uri.file(), Params.position, Opts.CodeComplete.Limit, + Params.textDocument.uri.file(), Params.position, Opts.LimitReferences, [Reply = std::move(Reply), IncludeDecl(Params.context.includeDeclaration)]( llvm::Expected<ReferencesResult> Refs) mutable {
Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -292,6 +292,14 @@ init(100), }; +opt<int> LimitReferences{ + "limit-references", + cat(Features), + desc("Limit the number of references returned by clangd. " + "0 means no limit (default=1000)"), + init(1000), +}; + list<std::string> TweakList{ "tweaks", cat(Features), @@ -821,6 +829,7 @@ } #endif Opts.BackgroundIndex = EnableBackgroundIndex; + Opts.LimitReferences = LimitReferences; auto PAI = createProjectAwareIndex(loadExternalIndex, Sync); if (StaticIdx) { IdxStack.emplace_back(std::move(StaticIdx)); Index: clang-tools-extra/clangd/ClangdLSPServer.h =================================================================== --- clang-tools-extra/clangd/ClangdLSPServer.h +++ clang-tools-extra/clangd/ClangdLSPServer.h @@ -65,6 +65,9 @@ /// Enable preview of InlayHints feature. bool InlayHints = false; + + /// Limit the number of references returned (0 means no limit). + size_t LimitReferences = 0; }; ClangdLSPServer(Transport &Transp, const ThreadsafeFS &TFS, Index: clang-tools-extra/clangd/ClangdLSPServer.cpp =================================================================== --- clang-tools-extra/clangd/ClangdLSPServer.cpp +++ clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -1264,7 +1264,7 @@ void ClangdLSPServer::onReference(const ReferenceParams &Params, Callback<std::vector<Location>> Reply) { Server->findReferences( - Params.textDocument.uri.file(), Params.position, Opts.CodeComplete.Limit, + Params.textDocument.uri.file(), Params.position, Opts.LimitReferences, [Reply = std::move(Reply), IncludeDecl(Params.context.includeDeclaration)]( llvm::Expected<ReferencesResult> Refs) mutable {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits