From 39dc09e6c4172299bc79de4c1c52288d3f624bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Wed, 23 Jun 2021 15:38:49 +0900 Subject: [PATCH] ui: Paginate prompt completion --- helix-term/src/ui/prompt.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs index c40be1a2c..63078c399 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))