summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/ui/prompt.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs
index c40be1a2..63078c39 100644
--- a/helix-term/src/ui/prompt.rs
+++ b/helix-term/src/ui/prompt.rs
@@ -292,17 +292,21 @@ impl Prompt {
let area = completion_area;
let background = theme.get("ui.statusline");
+ let items = height as usize * cols as usize;
+
+ let offset = self
+ .selection
+ .map(|selection| selection / items * items)
+ .unwrap_or_default();
+
surface.clear_with(area, background);
let mut row = 0;
let mut col = 0;
// TODO: paginate
- for (i, (_range, completion)) in self
- .completion
- .iter()
- .enumerate()
- .take(height as usize * cols as usize)
+ for (i, (_range, completion)) in
+ self.completion.iter().enumerate().skip(offset).take(items)
{
let color = if Some(i) == self.selection {
// Style::default().bg(Color::Rgb(104, 60, 232))