diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-03-15 01:12:06 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-03-15 01:12:06 +0800 |
| commit | 10ed02b8541a80e60f7ad9f9fb51f8070d6be525 (patch) | |
| tree | bfc034d1ad0c2d5567a53ece074932040dfb8d43 /src/systems/comp/context.rs | |
| parent | 72f80ea51f25256d0c463c2f3dc3d8670cfc4634 (diff) | |
Add completions system for shell autocompletion
Diffstat (limited to 'src/systems/comp/context.rs')
| -rw-r--r-- | src/systems/comp/context.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/systems/comp/context.rs b/src/systems/comp/context.rs new file mode 100644 index 0000000..36d1840 --- /dev/null +++ b/src/systems/comp/context.rs @@ -0,0 +1,33 @@ +use clap::{Parser, command}; + +#[derive(Parser, Debug)] +#[command(author, version, about, long_about = None)] +pub struct CompletionContext { + /// The full command line + #[arg(short = 'f', long)] + pub command_line: String, + + /// Cursor position + #[arg(short = 'C', long)] + pub cursor_position: usize, + + /// Current word + #[arg(short = 'w', long)] + pub current_word: String, + + /// Previous word + #[arg(short = 'p', long)] + pub previous_word: String, + + /// Command name + #[arg(short = 'c', long)] + pub command_name: String, + + /// Word index + #[arg(short = 'i', long)] + pub word_index: usize, + + /// All words + #[arg(short = 'a', long, num_args = 1..)] + pub all_words: Vec<String>, +} |
