================ @@ -1863,14 +1863,41 @@ class CodeCompleteFlow { CodeCompleteResult Output; // Convert the results to final form, assembling the expensive strings. + // If necessary, search the index for documentation comments. + LookupRequest Req; + llvm::DenseMap<SymbolID, uint32_t> SymbolToCompletion; for (auto &C : Scored) { Output.Completions.push_back(toCodeCompletion(C.first)); Output.Completions.back().Score = C.second; Output.Completions.back().CompletionTokenRange = ReplacedRange; + if (Opts.Index && !Output.Completions.back().Documentation) { + for (auto &Cand : C.first) { + if (Cand.SemaResult && + Cand.SemaResult->Kind == CodeCompletionResult::RK_Declaration) { + auto ID = clangd::getSymbolID(Cand.SemaResult->getDeclaration()); + if (!ID) + continue; + Req.IDs.insert(ID); + SymbolToCompletion[ID] = Output.Completions.size() - 1; + } + } + } } Output.HasMore = Incomplete; Output.Context = CCContextKind; Output.CompletionRange = ReplacedRange; + + // Look up documentation from the index. + if (Opts.Index) { + Opts.Index->lookup(Req, [&](const Symbol &S) { + auto &C = Output.Completions[SymbolToCompletion.at(S.ID)]; + if (S.Documentation.empty()) ---------------- HighCommander4 wrote:
nit: this early-return can be moved to before the lookup in `SymbolToCompletion` https://github.com/llvm/llvm-project/pull/120099 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits