aboutsummaryrefslogtreecommitdiff
path: root/examples/example-completion/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-completion/src')
-rw-r--r--examples/example-completion/src/main.rs39
1 files changed, 12 insertions, 27 deletions
diff --git a/examples/example-completion/src/main.rs b/examples/example-completion/src/main.rs
index e14326f..385387b 100644
--- a/examples/example-completion/src/main.rs
+++ b/examples/example-completion/src/main.rs
@@ -7,30 +7,15 @@
//! To make your completions work, you need to generate a completion script using Mingling's tools
//!
//! 1. Enable features
-//! You need to enable the `build` and `comp` features for `mingling` in `[build-dependencies]`
+//! Enable the `comp` feature for `mingling` in `[dependencies]`
//!
-//! 2. Write `build.rs`
-//! Write the following in `build.rs`
-//!
-//! ```rust,ignore
-//! fn main() {
-//! build_scripts();
-//! }
-//!
-//! /// Generate completion scripts
-//! fn build_scripts() {
-//! // `env!("CARGO_PKG_NAME")` equals the crate name, which matches the binary name.
-//! // If your binary name differs from the crate name, specify it explicitly.
-//! mingling::build::build_comp_scripts(
-//! // Your binary name:
-//! env!("CARGO_PKG_NAME"),
-//! )
-//! .unwrap();
-//! }
-//! ```
+//! 2. Generate completion scripts
+//! When the `comp` feature is enabled, `gen_program!()` automatically invokes
+//! `build_comp!()` at compile time, which generates the completion scripts
+//! (named after `CARGO_PKG_NAME`) into `target/mingling/`.
//!
//! 3. Verify
-//! Build your project with `cargo build --release`. The completion scripts will be generated in `target/release/`
+//! Build your project with `cargo build`. The completion scripts will be generated in `target/mingling/`
//!
//! Execute the script or have it be automatically sourced by your Shell
//!
@@ -56,12 +41,12 @@ fn main() {
}
// --------- IMPORTANT ---------
-// __________________________________________ Entry point bound to completion behavior
-// / _________________________ Shell context for obtaining user input state
-// | / ________ Suggest, used to return completion results
-// vvvvvvvvvv | /
-#[completion(EntryGreet)] // vvvvvvvvvvvv vvvvvvv
-fn complete_greet_entry(ctx: &ShellContext) -> Suggest {
+// _________________________________________ Entry point bound to completion behavior
+// / _________________________ Shell context for obtaining user input state
+// | / ________ Suggest, used to return completion results
+// vvvvvvvvvv | /
+#[completion(EntryGreet)] // vvvvvvvvvvvv vvvvvvv
+fn complete_greet_entry(ctx: ShellContext) -> Suggest {
// When the previous word is `greet` (the current command being typed)
if ctx.previous_word == "greet" {
// Return suggestions