aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui/menu.rs
diff options
context:
space:
mode:
authorMichael Davis2022-10-22 01:04:50 +0000
committerGitHub2022-10-22 01:04:50 +0000
commitd7d0d5ffb79b6f2e09c6ab8af6e112c41e6f73e8 (patch)
tree5078c81ef786f29d9739ec4cd65d87eae83b2e71 /helix-term/src/ui/menu.rs
parent17daf6ac0a1a7ef4a44078ef11cc150a8fa41ff0 (diff)
lsp: Resolve completion items missing documentation on idle (#4406)
Some language servers may not send the `documentation` field if it is expensive to compute. Clients can request the missing field with a completionItem/resolve request. In this change we use the idle-timeout event to ensure that the current completion item is resolved.
Diffstat (limited to 'helix-term/src/ui/menu.rs')
-rw-r--r--helix-term/src/ui/menu.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/helix-term/src/ui/menu.rs b/helix-term/src/ui/menu.rs
index 4b1155e3..75769b90 100644
--- a/helix-term/src/ui/menu.rs
+++ b/helix-term/src/ui/menu.rs
@@ -206,6 +206,14 @@ impl<T: Item> Menu<T> {
})
}
+ pub fn selection_mut(&mut self) -> Option<&mut T> {
+ self.cursor.and_then(|cursor| {
+ self.matches
+ .get(cursor)
+ .map(|(index, _score)| &mut self.options[*index])
+ })
+ }
+
pub fn is_empty(&self) -> bool {
self.matches.is_empty()
}