From fb2ffa849a2cf9251cc274ebea5daa9898579787 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 26 Mar 2026 15:55:10 +0800 Subject: Add shell completion system with descriptions and i18n support --- src/cmds/comp/workspace_alias.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/cmds/comp/workspace_alias.rs') diff --git a/src/cmds/comp/workspace_alias.rs b/src/cmds/comp/workspace_alias.rs index a8ac495..cd39c9d 100644 --- a/src/cmds/comp/workspace_alias.rs +++ b/src/cmds/comp/workspace_alias.rs @@ -1,17 +1,25 @@ -use cli_utils::string_vec; +use comp_system_macros::{file_suggest, suggest}; +use rust_i18n::t; -use crate::systems::comp::context::CompletionContext; +use crate::systems::comp::{context::CompletionContext, result::CompletionResult}; -pub fn comp(ctx: CompletionContext) -> Option> { +pub fn comp(ctx: CompletionContext) -> CompletionResult { if ctx.current_word.starts_with('-') { - return Some(string_vec![ - "-i", "--insert", "-Q", "--query", "-e", "--erase", "--to", - ]); + return suggest!( + "-i" = t!("workspace_alias.comp.insert").trim(), + "--insert" = t!("workspace_alias.comp.insert").trim(), + "-Q" = t!("workspace_alias.comp.query").trim(), + "--query" = t!("workspace_alias.comp.query").trim(), + "-e" = t!("workspace_alias.comp.erase").trim(), + "--erase" = t!("workspace_alias.comp.erase").trim(), + "--to" = t!("workspace_alias.comp.to").trim() + ) + .into(); } if ctx.previous_word == "--to" { - return Some(vec![]); + return suggest!().into(); } - None + file_suggest!() } -- cgit