From 4cb7c2e91d7dbde32de31e6ab48683d60212ec1d Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Wed, 25 Mar 2026 21:52:52 +0800 Subject: Add shell flag to completion scripts and rename output files - Add -F flag to all completion scripts to specify shell type - Rename completion output files to generic names (comp.sh, comp.zsh, etc.) - Add help text for jvn_comp program - Combine specific and default completion results - Add completion handlers for sheetdump, sheetedit, and version commands - Remove word count limits from workspace_alias and workspace_sheet completions --- src/cmds/comp/sheetdump.rs | 11 +++++++++++ src/cmds/comp/sheetedit.rs | 15 +++++++++++++++ src/cmds/comp/version.rs | 11 +++++++++++ src/cmds/comp/workspace_alias.rs | 8 -------- src/cmds/comp/workspace_sheet.rs | 11 ----------- 5 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 src/cmds/comp/sheetdump.rs create mode 100644 src/cmds/comp/sheetedit.rs create mode 100644 src/cmds/comp/version.rs (limited to 'src/cmds') diff --git a/src/cmds/comp/sheetdump.rs b/src/cmds/comp/sheetdump.rs new file mode 100644 index 0000000..3528cf3 --- /dev/null +++ b/src/cmds/comp/sheetdump.rs @@ -0,0 +1,11 @@ +use cli_utils::string_vec; + +use crate::systems::comp::context::CompletionContext; + +pub fn comp(ctx: CompletionContext) -> Option> { + if ctx.current_word.starts_with('-') { + return Some(string_vec!["--no-sort", "--no-pretty"]); + } + + None +} diff --git a/src/cmds/comp/sheetedit.rs b/src/cmds/comp/sheetedit.rs new file mode 100644 index 0000000..d210028 --- /dev/null +++ b/src/cmds/comp/sheetedit.rs @@ -0,0 +1,15 @@ +use cli_utils::string_vec; + +use crate::systems::comp::context::CompletionContext; + +pub fn comp(ctx: CompletionContext) -> Option> { + if ctx.current_word.starts_with('-') { + return Some(string_vec!["-e", "--editor"]); + } + + if ctx.previous_word == "-e" || ctx.previous_word == "--editor" { + return Some(vec![]); + } + + None +} diff --git a/src/cmds/comp/version.rs b/src/cmds/comp/version.rs new file mode 100644 index 0000000..1460214 --- /dev/null +++ b/src/cmds/comp/version.rs @@ -0,0 +1,11 @@ +use cli_utils::string_vec; + +use crate::systems::comp::context::CompletionContext; + +pub fn comp(ctx: CompletionContext) -> Option> { + if ctx.current_word.starts_with('-') { + return Some(string_vec!["-c", "--with-compile-info", "--no-banner"]); + } + + None +} diff --git a/src/cmds/comp/workspace_alias.rs b/src/cmds/comp/workspace_alias.rs index 5efabfa..a8ac495 100644 --- a/src/cmds/comp/workspace_alias.rs +++ b/src/cmds/comp/workspace_alias.rs @@ -3,14 +3,6 @@ use cli_utils::string_vec; use crate::systems::comp::context::CompletionContext; pub fn comp(ctx: CompletionContext) -> Option> { - if ctx.all_words.contains(&"--insert".to_string()) { - if ctx.all_words.len() > 7 { - return None; - } - } else if ctx.all_words.len() > 5 { - return None; - } - if ctx.current_word.starts_with('-') { return Some(string_vec![ "-i", "--insert", "-Q", "--query", "-e", "--erase", "--to", diff --git a/src/cmds/comp/workspace_sheet.rs b/src/cmds/comp/workspace_sheet.rs index 89cd259..3162442 100644 --- a/src/cmds/comp/workspace_sheet.rs +++ b/src/cmds/comp/workspace_sheet.rs @@ -3,17 +3,6 @@ use cli_utils::string_vec; use just_enough_vcs::system::workspace::workspace::manager::WorkspaceManager; pub fn comp(ctx: CompletionContext) -> Option> { - if ctx.all_words.len() > 5 { - return None; - } - - if (ctx.all_words.contains(&"--list-all".to_string()) - || ctx.all_words.contains(&"-A".to_string())) - && ctx.all_words.len() > 4 - { - return None; - } - if ctx.current_word.starts_with('-') { return Some(string_vec![ "-A", -- cgit