aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/commands.rs
diff options
context:
space:
mode:
authorPhilipp Mildenberger2023-03-20 00:18:08 +0000
committerPhilipp Mildenberger2023-05-18 19:58:17 +0000
commit451fe528bbc71e2712c02c1ee0d7ac6fcc1a058b (patch)
tree03cbf0b1555b66d447b255d9f98c6cfc2d90cc46 /helix-term/src/commands.rs
parent8ee599942a0e5ff6fa1a908ca076785e0d2bd0c7 (diff)
Filter out already seen language servers in requests that can be sent to multiple language servers (code-action, completion, symbol pickers)
Diffstat (limited to 'helix-term/src/commands.rs')
-rw-r--r--helix-term/src/commands.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index e2a5975b..d602eaa2 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -4243,9 +4243,12 @@ pub fn completion(cx: &mut Context) {
let text = savepoint.text.clone();
let cursor = savepoint.cursor();
+ let mut seen_language_servers = HashSet::new();
+
let mut futures: FuturesUnordered<_> = doc
.language_servers_with_feature(LanguageServerFeature::Completion)
// TODO this should probably already been filtered in something like "language_servers_with_feature"
+ .filter(|ls| seen_language_servers.insert(ls.id()))
.filter_map(|language_server| {
let language_server_id = language_server.id();
let offset_encoding = language_server.offset_encoding();