summaryrefslogtreecommitdiff
path: root/src/cmds/comp/workspace_alias.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-03-26 15:55:10 +0800
committer魏曹先生 <1992414357@qq.com>2026-03-26 15:55:10 +0800
commitfb2ffa849a2cf9251cc274ebea5daa9898579787 (patch)
tree53b87ee60ba7c6ee7b001221855a6f3bff7e8526 /src/cmds/comp/workspace_alias.rs
parent4cb7c2e91d7dbde32de31e6ab48683d60212ec1d (diff)
Add shell completion system with descriptions and i18n support
Diffstat (limited to 'src/cmds/comp/workspace_alias.rs')
-rw-r--r--src/cmds/comp/workspace_alias.rs24
1 files changed, 16 insertions, 8 deletions
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<Vec<String>> {
+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!()
}