From d5fb7a4ba4abf638e293d872b8767a206922e995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maria=20Jos=C3=A9=20Solano?= Date: Thu, 19 Jan 2023 18:23:21 -0800 Subject: [PATCH] Limit number of completions --- crates/rust-analyzer/src/to_proto.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index 0f0642bb4b5..f5cee5f907a 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs @@ -215,8 +215,19 @@ pub(crate) fn completion_items( let max_relevance = items.iter().map(|it| it.relevance().score()).max().unwrap_or_default(); let mut res = Vec::with_capacity(items.len()); for item in items { - completion_item(&mut res, config, line_index, &tdpp, max_relevance, item) + completion_item(&mut res, config, line_index, &tdpp, max_relevance, item); + + if let Some(limit) = config.completion().limit { + if res.len() >= limit { + break; + } + } } + + if let Some(limit) = config.completion().limit { + res.truncate(limit); + } + res }