From fe54a75c994ef5afc97e70f8be376176fcc2d4e7 Mon Sep 17 00:00:00 2001 From: zegonix Date: Tue, 24 Jun 2025 22:42:22 +0200 Subject: [PATCH] fixed bookmarks completions and error messages --- src/bookmarks.rs | 11 +++++++++-- src/main.rs | 2 +- src/output.rs | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/bookmarks.rs b/src/bookmarks.rs index 15c17c1..7ec75ad 100644 --- a/src/bookmarks.rs +++ b/src/bookmarks.rs @@ -158,8 +158,15 @@ impl Bookmarks { } /// get bookmarknames as space separated values in one string (for shell completions) - pub fn get_bookmarknames(&self) -> String { - let names: Vec = self.bookmarks.keys().cloned().collect(); + pub fn get_bookmark_names(&self) -> String { + let mut copy = self.bookmarks.clone(); + + for (name, path) in copy.clone() { + if !path.is_dir() { + _ = copy.remove(&name); + } + } + let names: Vec = copy.keys().cloned().collect(); names.join(" ") } diff --git a/src/main.rs b/src/main.rs index 6f91e0d..feacbdb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -163,7 +163,7 @@ fn handle_bookmark(args: &BookmarkArgs, config: &Config, bookmarks: &mut Bookmar BookmarkAction::list => list_bookmarks(config, bookmarks, output)?, BookmarkAction::add(args) => add_bookmarks(args, config, bookmarks, output)?, BookmarkAction::remove(args) => remove_bookmarks(args, config, bookmarks, output)?, - BookmarkAction::completions => println!("echo '{}'", bookmarks.get_bookmarknames()), + BookmarkAction::completions => println!("echo '{}'", bookmarks.get_bookmark_names()), }; } else if args.name.is_some() { // handle `change to bookmark` let path = bookmarks.get_path_by_name(args.name.as_ref().unwrap())?; diff --git a/src/output.rs b/src/output.rs index 0e72dbe..d70fb4c 100644 --- a/src/output.rs +++ b/src/output.rs @@ -1,7 +1,7 @@ #![allow(unused)] use clap::builder::EnumValueParser; -use config_parser::RESET_SEQ; +use config_parser::apply_format; use super::config::*; @@ -81,11 +81,11 @@ impl Output { output.push(info); } if !warning.is_empty() { - warning = format!("echo '{}' && {}", config.styles.warning_style, warning); + warning = format!("echo '{}'", apply_format(&warning, &config.styles.error_style).unwrap()); output.push(warning); } if !error.is_empty() { - error = format!("echo '{}' && {}", config.styles.error_style, error); + error = format!("echo '{}'", apply_format(&error, &config.styles.error_style).unwrap()); output.push(error); } if !command.is_empty() {