Fix preview bug (#3644)

* Fix preview bug

* Add comment to empty case
This commit is contained in:
Joe 2022-09-20 03:40:48 -04:00 committed by GitHub
parent 1df32c917c
commit aa00a470f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

View file

@ -715,7 +715,10 @@ fn theme(
cx.editor.unset_theme_preview(); cx.editor.unset_theme_preview();
} }
PromptEvent::Update => { PromptEvent::Update => {
if let Some(theme_name) = args.first() { if args.is_empty() {
// Ensures that a preview theme gets cleaned up if the user backspaces until the prompt is empty.
cx.editor.unset_theme_preview();
} else if let Some(theme_name) = args.first() {
if let Ok(theme) = cx.editor.theme_loader.load(theme_name) { if let Ok(theme) = cx.editor.theme_loader.load(theme_name) {
if !(true_color || theme.is_16_color()) { if !(true_color || theme.is_16_color()) {
bail!("Unsupported theme: theme requires true color support"); bail!("Unsupported theme: theme requires true color support");

View file

@ -293,6 +293,7 @@ impl Prompt {
register: char, register: char,
direction: CompletionDirection, direction: CompletionDirection,
) { ) {
(self.callback_fn)(cx, &self.line, PromptEvent::Abort);
let register = cx.editor.registers.get_mut(register).read(); let register = cx.editor.registers.get_mut(register).read();
if register.is_empty() { if register.is_empty() {
@ -314,6 +315,7 @@ impl Prompt {
self.history_pos = Some(index); self.history_pos = Some(index);
self.move_end(); self.move_end();
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
self.recalculate_completion(cx.editor); self.recalculate_completion(cx.editor);
} }
@ -564,13 +566,11 @@ impl Component for Prompt {
ctrl!('p') | key!(Up) => { ctrl!('p') | key!(Up) => {
if let Some(register) = self.history_register { if let Some(register) = self.history_register {
self.change_history(cx, register, CompletionDirection::Backward); self.change_history(cx, register, CompletionDirection::Backward);
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
} }
} }
ctrl!('n') | key!(Down) => { ctrl!('n') | key!(Down) => {
if let Some(register) = self.history_register { if let Some(register) = self.history_register {
self.change_history(cx, register, CompletionDirection::Forward); self.change_history(cx, register, CompletionDirection::Forward);
(self.callback_fn)(cx, &self.line, PromptEvent::Update);
} }
} }
key!(Tab) => { key!(Tab) => {