<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_core, branch try-new-badges</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/'/>
<entry>
<title>feat(ci-new): add test-all task with per-crate config support</title>
<updated>2026-08-18T02:01:53+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-18T02:01:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=570b2bc1710c0ab8a68ad69a6121144e4f5e3aca'/>
<id>570b2bc1710c0ab8a68ad69a6121144e4f5e3aca</id>
<content type='text'>
Add a new `test-all` command that runs tests across all crates with
optional per-crate command overrides via `mingling-ci.toml` files.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a new `test-all` command that runs tests across all crates with
optional per-crate command overrides via `mingling-ci.toml` files.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: replace build.rs with compile-time macro build steps</title>
<updated>2026-08-17T11:21:52+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-17T11:21:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=89bf57f33a9f0f5a96fc50e272c83d926fa35c4a'/>
<id>89bf57f33a9f0f5a96fc50e272c83d926fa35c4a</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(macros): relax completion attribute signature</title>
<updated>2026-08-16T22:57:09+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T22:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=c6ab865d5b19e3a57b76562adb9540cbf03d77c4'/>
<id>c6ab865d5b19e3a57b76562adb9540cbf03d77c4</id>
<content type='text'>
Allow completion functions to omit the context parameter, accept owned
ShellContext or any From&lt;&amp;ShellContext&gt; type, and return any type
implementing Into&lt;Suggest&gt;. Add From&lt;&amp;str&gt; for SuggestItem and derive
Clone for ShellContext.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow completion functions to omit the context parameter, accept owned
ShellContext or any From&lt;&amp;ShellContext&gt; type, and return any type
implementing Into&lt;Suggest&gt;. Add From&lt;&amp;str&gt; for SuggestItem and derive
Clone for ShellContext.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: remove legacy parser feature and migrate to picker</title>
<updated>2026-08-16T20:05:41+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T20:05:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=aa251efb87b561f62266628f06ad341253fbbdc5'/>
<id>aa251efb87b561f62266628f06ad341253fbbdc5</id>
<content type='text'>
The legacy `parser` feature and its module tree (`mingling::parser`,
`Argument`, `Picker`, `Pickable`, etc.) have been fully removed and
replaced by the `picker` feature powered by `arg-picker`.

BREAKING CHANGE: Remove `parser` feature and use `picker` instead.
Migration guide: Replace `features = ["parser"]` with
`features = ["picker"]` and update API usage per the provided table.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The legacy `parser` feature and its module tree (`mingling::parser`,
`Argument`, `Picker`, `Pickable`, etc.) have been fully removed and
replaced by the `picker` feature powered by `arg-picker`.

BREAKING CHANGE: Remove `parser` feature and use `picker` instead.
Migration guide: Replace `features = ["parser"]` with
`features = ["picker"]` and update API usage per the provided table.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: remove Node type and simplify dispatcher macro syntax</title>
<updated>2026-08-16T19:27:46+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T19:27:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=c23c590330af83afb6e146bcd9b0a274b3689d22'/>
<id>c23c590330af83afb6e146bcd9b0a274b3689d22</id>
<content type='text'>
The `dispatcher!` macro no longer requires a `CMD*` dispatcher type
argument; the dispatcher struct is now generated internally as
`__Dispatcher{Pascal}`. The `Node` type, `node!` macro, and
`Dispatcher::node()` / `clone_dispatcher()` methods are removed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `dispatcher!` macro no longer requires a `CMD*` dispatcher type
argument; the dispatcher struct is now generated internally as
`__Dispatcher{Pascal}`. The `Node` type, `node!` macro, and
`Dispatcher::node()` / `clone_dispatcher()` methods are removed.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: remove dynamic dispatcher registration API</title>
<updated>2026-08-16T18:39:56+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T18:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=6980fbf2f9fb4c599d8dc6ff549a8b3288eb24e9'/>
<id>6980fbf2f9fb4c599d8dc6ff549a8b3288eb24e9</id>
<content type='text'>
Dispatchers are now always registered at compile time, removing the
`with_dispatcher` / `with_dispatchers` methods and the
`PathfinderConfig` API. The `dispatch_tree` feature now only controls
the matching strategy (trie vs linear list).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dispatchers are now always registered at compile time, removing the
`with_dispatcher` / `with_dispatchers` methods and the
`PathfinderConfig` API. The `dispatch_tree` feature now only controls
the matching strategy (trie vs linear list).
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: rename dispatch_args_trie to dispatch_args</title>
<updated>2026-08-16T17:35:00+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T17:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=4c191b2b46a67a0dda6e9a867b40f45156af4f9c'/>
<id>4c191b2b46a67a0dda6e9a867b40f45156af4f9c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore(release): bump version to 0.5.0</title>
<updated>2026-08-16T16:05:53+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T16:05:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=62d2f8637da3274fc22debb62b79f15e521d503e'/>
<id>62d2f8637da3274fc22debb62b79f15e521d503e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): add public ArgumentSplitter utility</title>
<updated>2026-08-14T19:42:31+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-14T19:42:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=57e20f69efea609d8332cc39d223f4aa46be3c78'/>
<id>57e20f69efea609d8332cc39d223f4aa46be3c78</id>
<content type='text'>
Move the REPL's argument splitting logic into a new public `utils`
module exposing the `ArgumentSplitter` trait for reuse by downstream
code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the REPL's argument splitting logic into a new public `utils`
module exposing the `ArgumentSplitter` trait for reuse by downstream
code.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): allow pre_dispatch hooks to mutate arguments</title>
<updated>2026-08-14T19:28:02+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-14T19:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=ec6c87d12062576271231b88364a4aa00765ae65'/>
<id>ec6c87d12062576271231b88364a4aa00765ae65</id>
<content type='text'>
Change `HookPreDispatchInfo.arguments` from `&amp;[String]` to `&amp;mut
Vec&lt;String&gt;`
so hooks can rewrite command-line arguments before dispatch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change `HookPreDispatchInfo.arguments` from `&amp;[String]` to `&amp;mut
Vec&lt;String&gt;`
so hooks can rewrite command-line arguments before dispatch.
</pre>
</div>
</content>
</entry>
</feed>
