| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Remove `Title`, `Lower`, and `Upper` variants from
`ParserStyleNamingCase` as they are not valid naming conventions.
|
| |
|
|
|
|
|
|
|
| |
Replace boolean flags in `ProgramStdoutSetting` and `ProgramUserContext`
with semantic enum types, improving type safety and self-documentation.
BREAKING CHANGE: Boolean fields are replaced by enums, e.g.
`verbose`/`quiet`/`debug` become `verbosity`, `dry_run`/`force` become
`execution`.
|
| |
|
|
|
| |
Correct off-by-one word index computation and conditionally pass
option values only when non-empty to avoid spurious parsing.
|
| |
|
|
|
|
|
|
| |
Remove the BasicStructPattern from pathf's pattern analyzer to eliminate
noise from plain structs not associated with any Mingling macro.
Also clean up the now-unused `basic_struct` module and update the
integration test to assert plain structs are no longer collected.
|
| |
|
|
|
| |
Fix the method to use `eprintln!` instead of `println!` when
`immediate_output` is enabled, ensuring error output goes to stderr.
|
| |
|
|
|
| |
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`
|
| | |
|