| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Previously, an absent -F and a present -F without a value both
mapped to "unknown". Now, a -F with no value maps to an empty
shell flag, while a missing -F remains "unknown".
|
| |
|
|
|
| |
Document build-time features, feature pairing, and add a `build.rs`
template for easily setting up `comp` and `pathf`.
|
| |
|
|
|
| |
Add module-level docs for the build module via include_str and
restrict public re-exports to explicit items instead of glob imports.
|
| |
|
|
|
| |
Use the `special_argument!` macro to simplify extracting
shell context values from command-line arguments.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
| |
Introduce `might_be_async` as a workspace dependency, add it to
`mingling_core`, and regenerate all Cargo.lock files accordingly.
Multiple examples and test packages also pick up a newly transitive
`equivalent` crate.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
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`.
|
| |
|
|
| |
clause
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Add `#![deny(missing_docs)]` across multiple crates and fill in
documentation for all public items, including struct fields, enum
variants, trait methods, and proc macros. Also mark two shell scripts
as executable.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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>`.
|
| |
|
|
|
| |
Move routing methods exclusively to the `Routable` trait and update
all macro-generated code to reference `Routable` instead of `Grouped`
|
| |
|
|
|
|
|
|
|
|
|
|
| |
methods
Deprecate `ShellContext` methods `filling_argument_first`,
`filling_argument`, `typing_argument`, `strip_typed_argument`, and
`get_typed_arguments` when the `picker` feature is active, as they
do not work under all `ParserStyle` settings.
Add `#![allow(deprecated)]` to the affected modules to suppress
warnings from internal usage.
|
| |
|
|
|
|
| |
Introduce a `Routable` trait with `to_chain` and `to_render`
methods, replacing direct `Grouped` usage in the `route!` macro
so error branches correctly route through the rendering pipeline
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Implement `From<()>`, integer types, String, &String, and &str
to allow renderers to return simple values directly
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Picker2 replaces the original Picker1 with a two-phase (tag → pick) +
mask-bitmap architecture, decoupling argument matching from type
conversion via a composable matcher pipeline.
Architecture
- FlagMatcher — boolean flags (--verbose)
- ArgMatcher — single flag+value pairs (--name Alice)
- MultiArgMatcher — multi-value flag groups (--files a.txt b.txt)
- PositionalMatcher — positional arguments, respects `--`
- SingleMatcher — composite for Single-type Pickables
Types
- Flag (Active/Inactive) — semantic bool flag value
- String + 14 numeric types via SinglePickable trait
- Vec<T> — greedy multi-value (all SinglePickable types)
- VecUntil<T> — bounded multi-value via BoundaryCheck trait
- VecUntil<T>, pick_string, pick_numbers, pick_bool, pick_flag
Style system
- UNIX_STYLE (kebab), POWERSHELL_STYLE (Pascal), WINDOWS_STYLE (Pascal)
- naming_case auto-conversion via just_fmt integration
- Style-aware separator (= for Unix, : for PS/Windows)
Infrastructure
- internal_repeat! macro generates PickerPattern1..=32
- SinglePickable blanket impl → Pickable
- MultiPickableWithBoundary trait with greedy/bounded variants
- 151 integration tests
- Docs updated for parser feature
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
BREAKING CHANGE: The `render` method on `Renderer`, `HelpRequest`, and
`ProgramCollect` now returns `RenderResult` instead of taking
`&mut RenderResult`. The `r_print!` and `r_println!` macros have been
removed in favor of using `std::io::Write` directly on `RenderResult`.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Cargo.lock
|
| | |
|
| | |
|