From ab723c5ba76759962976c7b892cb32d4f492dc37 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Fri, 3 Nov 2023 22:09:05 +0800 Subject: [PATCH] expand the area --- yazi-core/src/completion/completion.rs | 7 ++++++- yazi-fm/src/completion/completion.rs | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/yazi-core/src/completion/completion.rs b/yazi-core/src/completion/completion.rs index 86bd63f9..a1c72ceb 100644 --- a/yazi-core/src/completion/completion.rs +++ b/yazi-core/src/completion/completion.rs @@ -12,6 +12,7 @@ pub struct Completion { } impl Completion { + // --- Cands #[inline] pub fn window(&self) -> &[String] { let end = (self.offset + self.limit()).min(self.cands.len()); @@ -19,8 +20,12 @@ impl Completion { } #[inline] - pub fn limit(&self) -> usize { self.cands.len().min(5) } + pub fn limit(&self) -> usize { self.cands.len().min(10) } #[inline] pub fn selected(&self) -> &String { &self.cands[self.cursor] } + + // --- Cursor + #[inline] + pub fn rel_cursor(&self) -> usize { self.cursor - self.offset } } diff --git a/yazi-fm/src/completion/completion.rs b/yazi-fm/src/completion/completion.rs index dea3dd07..2f47381f 100644 --- a/yazi-fm/src/completion/completion.rs +++ b/yazi-fm/src/completion/completion.rs @@ -26,7 +26,7 @@ impl<'a> Widget for Completion<'a> { }; let mut item = ListItem::new(format!(" {} {}", icon, x)); - if i == self.cx.completion.cursor { + if i == self.cx.completion.rel_cursor() { item = item.style(THEME.completion.active.into()); } else { item = item.style(THEME.completion.inactive.into()); @@ -37,8 +37,10 @@ impl<'a> Widget for Completion<'a> { .collect::>(); let input_area = self.cx.area(&self.cx.input.position); - let mut area = - self.cx.area(&Position::Sticky(Rect { x: 1, y: 0, width: 20, height: 15 }, input_area)); + let mut area = self.cx.area(&Position::Sticky( + Rect { x: 1, y: 0, width: 20, height: items.len() as u16 + 2 }, + input_area, + )); if area.y > input_area.y { area.y = area.y.saturating_sub(1);