aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/editor.rs8
-rw-r--r--helix-term/src/ui/menu.rs7
-rw-r--r--helix-term/src/ui/mod.rs3
-rw-r--r--helix-term/src/ui/prompt.rs20
4 files changed, 22 insertions, 16 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 1f4fc1c5..6428870e 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -508,7 +508,13 @@ impl EditorView {
} else {
let line = match config.line_number {
LineNumber::Absolute => line + 1,
- LineNumber::Relative => abs_diff(current_line, line),
+ LineNumber::Relative => {
+ if current_line == line {
+ line + 1
+ } else {
+ abs_diff(current_line, line)
+ }
+ }
};
format!("{:>5}", line)
};
diff --git a/helix-term/src/ui/menu.rs b/helix-term/src/ui/menu.rs
index a56cf19b..24dd3e61 100644
--- a/helix-term/src/ui/menu.rs
+++ b/helix-term/src/ui/menu.rs
@@ -259,8 +259,11 @@ impl<T: Item + 'static> Component for Menu<T> {
// TODO: required size should re-trigger when we filter items so we can draw a smaller menu
fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
- let style = cx.editor.theme.get("ui.text");
- let selected = cx.editor.theme.get("ui.menu.selected");
+ let theme = &cx.editor.theme;
+ let style = theme
+ .try_get("ui.menu")
+ .unwrap_or_else(|| theme.get("ui.text"));
+ let selected = theme.get("ui.menu.selected");
let scroll = self.scroll;
diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs
index e4871312..f3f8670e 100644
--- a/helix-term/src/ui/mod.rs
+++ b/helix-term/src/ui/mod.rs
@@ -228,7 +228,8 @@ pub mod completers {
let end = input.len()..;
- let mut files: Vec<_> = WalkBuilder::new(dir.clone())
+ let mut files: Vec<_> = WalkBuilder::new(&dir)
+ .hidden(false)
.max_depth(Some(1))
.build()
.filter_map(|file| {
diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs
index 19986b5c..7197adea 100644
--- a/helix-term/src/ui/prompt.rs
+++ b/helix-term/src/ui/prompt.rs
@@ -400,18 +400,6 @@ impl Component for Prompt {
})));
match event {
- // char or shift char
- KeyEvent {
- code: KeyCode::Char(c),
- modifiers: KeyModifiers::NONE,
- }
- | KeyEvent {
- code: KeyCode::Char(c),
- modifiers: KeyModifiers::SHIFT,
- } => {
- self.insert_char(c);
- (self.callback_fn)(cx, &self.line, PromptEvent::Update);
- }
KeyEvent {
code: KeyCode::Char('c'),
modifiers: KeyModifiers::CONTROL,
@@ -539,6 +527,14 @@ impl Component for Prompt {
code: KeyCode::Char('q'),
modifiers: KeyModifiers::CONTROL,
} => self.exit_selection(),
+ // any char event that's not combined with control or mapped to any other combo
+ KeyEvent {
+ code: KeyCode::Char(c),
+ modifiers,
+ } if !modifiers.contains(KeyModifiers::CONTROL) => {
+ self.insert_char(c);
+ (self.callback_fn)(cx, &self.line, PromptEvent::Update);
+ }
_ => (),
};