From 725acee81e4c2a90264dbe45f860a5723c1a6fa5 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Tue, 10 Mar 2026 17:17:44 +0100 Subject: automatically applies longest shared prefix of suggestions --- src/main.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 2be6562..1dbd024 100644 --- a/src/main.rs +++ b/src/main.rs @@ -371,8 +371,9 @@ fn event_loop() { } parse::CompletionKind::None => continue, }; - + suggestions.sort_by(|x, y| x.delta.cmp(&y.delta)); + suggestions.dedup_by(|x, y| x.delta == y.delta); if suggestions.len() == 0 { continue; @@ -386,6 +387,26 @@ fn event_loop() { continue; } + // find longest shared prefix and type it + { + let mut longest = &suggestions[0].delta[..]; + for s in suggestions.iter() { + let mut new = longest; + for i in 0..longest.len().min(s.delta.len()) { + if longest[i] != s.delta[i] { + break; + } else { + new = &s.delta[..=i]; + } + } + longest = new; + } + + if !longest.is_empty() { + se.type_bytes(longest); + } + } + cursor::save(); // one line below -- cgit v1.2.3