| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Update changelog and issue tracker notes for the enhanced
`default_completion` behavior.
|
| |
|
|
|
|
|
| |
When a concrete entry's custom completion handler produces a `Suggest`
value, combine it with the default subcommand suggestions instead of
replacing them entirely. `FileCompletion` still falls back to the
default completion since it cannot be meaningfully merged.
|
| |
|
|
|
|
|
|
| |
Refactor `build_dispatch_body` to take a caller-provided `no_match`
fallback token stream instead of hardcoding `build_entry_fallback`
calls. Thread the fallback through recursive calls so child paths are
preferred over exact endpoints at the same depth, matching the dynamic
dispatcher's longest-prefix-wins behavior.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Add `Metadata<B>` trait and `#[metadata(Entry)]` attribute macro
to attach arbitrary, compile-time-typed metadata to entries.
Implement `ProgramCollect::get_metadata<T>()` for runtime retrieval,
backed by a global registry populated by `register_metadata!`.
Extend `pathf` with `MetadataPattern` to resolve metadata types
across modules at build time. Add two examples demonstrating
metadata usage with and without pathf integration.
|
| | |
|
| |
|
|
| |
Fix command tree matching when global flags precede the subcommand.
|
| |
|
|
|
|
|
|
| |
Rework bash completion script to fix word-index tracking when the
cursor is in the middle of a word, compute the current word from
COMP_LINE truncated at COMP_POINT, and use space-separated option
arguments. Also trim colon prefixes from completion items when
COMP_WORDBREAKS includes colons.
|
| |
|
|
|
|
|
| |
Fix zsh completion script to escape colons in completion items
and descriptions, preventing parsing issues with `_describe`.
Also iterate over the original completions array for simple
completions to correctly extract completion items.
|
| |
|
|
| |
trait
|
| |
|
|
|
|
| |
Add `#[completion(EntryFallback)]` syntax to enable custom
completion suggestions for unmatched entries, merging fallback
results with default completions via `Suggest::combine()`.
|
| |
|
|
|
|
|
|
| |
Rename the internal fallback type and its associated `ProgramCollect`
plumbing from `ErrorDispatcherNotFound`/`build_dispatcher_not_found` to
`EntryFallback`/`build_entry_fallback`, along with the generated enum
variant and pack type. Update all documentation, examples, and tests
accordingly.
|
| |
|
|
|
|
|
| |
Add convenience presets (`mini`, `advanced`, `full`, `build_advanced`,
`build_full`) to `mingling/Cargo.toml` and document them in both
English and Chinese feature docs. Update getting-started guides to
reflect the new default `core`/`macros` features.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Add `add_suggest()` and `add_suggest_with_description()` methods to
`Suggest` for ergonomic batch population of suggestion sets from
collections of strings.
Update the `suggest!` macro to use these new methods and accept
expressions beyond string literals for suggestion items.
|
| |
|
|
|
| |
Update all references across docs, examples, and configuration files to
use the shorter `extras` feature name.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Add a `From<pack_Type> for crate::Entry` implementation in
`dispatcher!()` macro and a default `Entry` pack type in
`gen_program!()` for ergonomic program entry handling
|
| |
|
|
|
|
| |
Move pathf type resolution from `program_final_gen` to `gen_program` and
isolate generated code inside `__this_program_impl` to prevent namespace
pollution
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new `#[command]` attribute macro (feature-gated behind
`extra_macros`) that converts a plain function with a `Vec<String>`
parameter into a fully wired Mingling command. The macro generates a
`dispatcher!` call, a `#[chain]` wrapper, and a hidden module
re-exporting
all generated types.
Also add `CommandPattern` to the pathf pattern analyzer to recognize
`#[command]`-annotated functions and track their generated hidden
modules.
|
| | |
|
| |
|
|
|
| |
Add `unwrap_or_default`, `unwrap_or_else`, and `expect` methods to
reduce boilerplate when working with parsed argument tuples
|
| |
|
|
|
|
|
|
|
| |
Add `FilePath`, `NoFilePath`, `DirPath`, `NoDirPath`, `SymlinkPath`,
`NoSymlinkPath`, `NoPath`, and `RecursiveFiles` wrapper types with
filesystem validation at parse time. Each type implements
`SinglePickable`
and provides standard conversions via `From`, `AsRef`, `Deref`, and
`DerefMut`.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Replace manual `#[cfg(feature = "async")]` code duplication in `exec`
and
`exec_with_args` with `#[might_be_async::func]` annotations and
`might_be_async::invoke!()` wrappers, reducing two code paths to one.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Replace the `builds` feature with `build` across the crate, keeping
a backward-compatible alias for the old name. Update all internal
visibility from `#[doc(hidden)] pub mod` to `pub(crate) mod` and
reorganize the `__private` module into a dedicated `private.rs`.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
fields
Declare `Grouped` as `unsafe trait` to make its soundness invariant
visible.
Make `AnyOutput.type_id` and `member_id` private; add public accessors
and
the `unsafe fn new_bare` constructor.
|
| | |
|
| | |
|
| |
|
|
| |
pipeline error routing
|
| |
|
|
|
|
|
|
|
|
| |
Add `AnalyzeItem::foreign()` and `AnalyzeItem::local()` constructors to
distinguish items resolved via `use` imports from local definitions.
Update `GroupPattern` to collect use imports at file and module levels,
resolving `group!(TypeName)` against them. Migrate all pattern
implementations to use the new constructors, and adjust
`type_mapping_builder` to skip the file's own module prefix for foreign
items.
|
| |
|
|
|
|
|
| |
Make `StructuralData` and `StructuralDataSealed` generic over a program
collector type to bypass the orphan rule for `group_structural!`. This
enables external types to implement `StructuralData<crate::ThisProgram>`
without violating coherence.
|
| |
|
|
| |
patterns
|
| | |
|
| |
|
|
|
|
|
| |
Implement `RenderResult::append_other()` to merge buffered content and
immediate output behavior from one result into another. Add the
`r_append!` macro with both explicit buffer (`dst, src`) and implicit
buffer (`src`) usage forms, re-exported from `mingling::prelude`.
|
| |
|
|
|
| |
Enables method chaining for `with_resource`, `with_dispatcher`,
`with_dispatchers`, `with_hook`, and `with_setup`
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Remove `Deref<Target=str>` and `render_text:String` in favor of
`render_buffer:Vec<(String, RenderResultMode)>` and an
`immediate_output`
flag. Add `RenderResultMode` enum, `r_eprint!`/`r_eprintln!` macros, and
new buffer manipulation methods (`append_to_buffer`, `eprint`, etc.).
Update `Display` to trim output and remove trailing newline. Migrate all
callers and tests away from `Deref` usage.
|
| |
|
|
|
|
|
|
|
|
|
| |
macros
Reintroduce `r_print!` and `r_println!` macros as public exports, now
supporting both explicit buffer argument and implicit `#[buffer]` attr.
Add `#[buffer]` attribute macro that wraps unit-returning functions to
produce a `RenderResult` with an automatically injected buffer variable.
Relax `RenderResult::print()` and `println()` to accept `impl
AsRef<str>`.
|
| |
|
|
|
|
|
|
|
|
|
| |
Refactor #[chain], #[renderer], #[help], and #[completion] macros to
keep
the original user function as a named item instead of inlining its body.
Trait method implementations now call the original function by name,
injecting resources from the application context.
This improves debugging (stack traces reference user function names),
error messages, and macro expansion clarity.
|
| |
|
|
|
| |
Move routing methods exclusively to the `Routable` trait and update
all macro-generated code to reference `Routable` instead of `Grouped`
|
| | |
|