summaryrefslogtreecommitdiff
path: root/src/systems/comp/context.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-03-15 01:12:06 +0800
committer魏曹先生 <1992414357@qq.com>2026-03-15 01:12:06 +0800
commit10ed02b8541a80e60f7ad9f9fb51f8070d6be525 (patch)
treebfc034d1ad0c2d5567a53ece074932040dfb8d43 /src/systems/comp/context.rs
parent72f80ea51f25256d0c463c2f3dc3d8670cfc4634 (diff)
Add completions system for shell autocompletion
Diffstat (limited to 'src/systems/comp/context.rs')
-rw-r--r--src/systems/comp/context.rs33
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>,
+}