aboutsummaryrefslogtreecommitdiff
path: root/examples/example-completion/src/main.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 19:21:52 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 19:21:52 +0800
commit89bf57f33a9f0f5a96fc50e272c83d926fa35c4a (patch)
treecc5a72e850bdd9215b60dc1655f162e22ee97d12 /examples/example-completion/src/main.rs
parent40bb7ffd6954184fac718c8f99c9cdc3e054e4eb (diff)
refactor!: replace build.rs with compile-time macro build steps
BREAKING CHANGE: Replace the `build`/`builds` feature system with compile-time macro-driven generation. `gen_program!()` now automatically invokes `build_comp!()` and `build_pathf!()` when the `comp`/`pathf` features are enabled, eliminating the need for `build.rs` and `[build-dependencies]` blocks. This removes the `build` feature, the `mingling::build` module, and all related build-time API functions. Completion scripts are now written to `{target_directory}/mingling/` instead of `target/release/`. The `mingling_cli` uses `build_comp!("mling")` for its custom binary name.
Diffstat (limited to 'examples/example-completion/src/main.rs')
-rw-r--r--examples/example-completion/src/main.rs27
1 files changed, 6 insertions, 21 deletions
diff --git a/examples/example-completion/src/main.rs b/examples/example-completion/src/main.rs
index 389cf74..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
//!