Patrick Stevens
038b424906
Add type-level help text support to ArgParser generator ( #457 )
...
The ArgumentHelpText attribute can now be applied to the record type itself
to display help text at the top of the --help output, before field descriptions.
This enables better documentation of command-line argument parsers.
Features:
- Type-level help text appears before argument list
- Multiline help text is supported
- Backward compatible with existing code
- Help text appears in both --help and error messages
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-21 06:32:55 +00:00
Patrick Stevens
67e051b6b3
Add --no- prefix for bools ( #455 )
...
Implements support for --no- prefix negation on boolean and flag DU fields
when marked with [<ArgumentNegateWithPrefix>]. This allows both --flag and
--no-flag forms to be accepted, with --no- variants negating the value.
Changes:
- Extend ArgParserGenerator to generate --no- prefix handling
- Add conflict detection for overlapping --no- prefixed arguments
- Update help text to display both forms (e.g., --verbose / --no-verbose)
- Add test examples in ArgParserNegationTests.fs demonstrating:
- Boolean field negation
- Flag DU negation
- Multiple ArgumentLongForm with negation
- Combined features (defaults, help text)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-19 07:53:15 +00:00
Patrick Stevens
0fe97da788
Have arg parser take string -> string option ( #368 )
2025-04-21 09:07:58 +00:00
dependabot[bot]
325f8634a4
Bump FSharp.Core and WoofWare.Whippet.Fantomas ( #361 )
...
* Bump FsCheck and FSharp.Core
Bumps [FsCheck](https://github.com/Fscheck/fscheck ) and [FSharp.Core](https://github.com/dotnet/fsharp ). These dependencies needed to be updated together.
Updates `FsCheck` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/Fscheck/fscheck/releases )
- [Changelog](https://github.com/fscheck/FsCheck/blob/master/FsCheck%20Release%20Notes.md )
- [Commits](https://github.com/Fscheck/fscheck/compare/3.1.0...3.2.0 )
Updates `FSharp.Core` from 4.3.4 to 5.0.2
- [Release notes](https://github.com/dotnet/fsharp/releases )
- [Changelog](https://github.com/dotnet/fsharp/blob/main/release-notes.md )
- [Commits](https://github.com/dotnet/fsharp/commits )
---
updated-dependencies:
- dependency-name: FsCheck
dependency-version: 3.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: FSharp.Core
dependency-version: 5.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
* Bump FSharp.Core and WoofWare.Whippet.Fantomas
Bumps [FSharp.Core](https://github.com/dotnet/fsharp ) and [WoofWare.Whippet.Fantomas](https://github.com/Smaug123/WoofWare.Whippet ). These dependencies needed to be updated together.
Updates `FSharp.Core` from 4.3.4 to 6.0.1
- [Release notes](https://github.com/dotnet/fsharp/releases )
- [Changelog](https://github.com/dotnet/fsharp/blob/main/release-notes.md )
- [Commits](https://github.com/dotnet/fsharp/commits )
Updates `WoofWare.Whippet.Fantomas` from 0.3.2 to 0.5.1
- [Commits](https://github.com/Smaug123/WoofWare.Whippet/commits )
---
updated-dependencies:
- dependency-name: FSharp.Core
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-major
- dependency-name: WoofWare.Whippet.Fantomas
dependency-version: 0.5.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Smaug123 <3138005+Smaug123@users.noreply.github.com >
2025-04-14 22:05:23 +00:00
Patrick Stevens
d59ebdfccb
Use more of the Whippet Fantomas client lib ( #284 )
2024-10-06 21:22:24 +00:00
Patrick Stevens
29b93b2f20
Pull in AST-manipulating function from Myriad ( #281 )
2024-10-06 21:08:32 +00:00
Patrick Stevens
40106d8aa3
Use WoofWare.Whippet.Fantomas rather than Myriad.Core ( #280 )
2024-10-06 20:22:06 +00:00
Patrick Stevens
8488883835
Remove more of Myriad.Core ( #276 )
2024-10-02 20:38:00 +00:00
Patrick Stevens
693b95106a
Also pipe through parser in PositionalArgs true ( #259 )
2024-09-13 16:11:53 +00:00
Patrick Stevens
49ecfbf5e5
Fix includeFlagLike when arg doesn't have an equals ( #257 )
2024-09-12 22:10:08 +00:00
Patrick Stevens
5748ac3d5b
Allow consuming *all* args as positionals, not just ones which look like --foo ( #255 )
2024-09-11 19:00:04 +00:00
Patrick Stevens
913959a740
Make arg parser more AOT-friendly ( #253 )
2024-09-10 22:16:43 +01:00
Patrick Stevens
029e3746bb
Fix record/union impl accessibility ( #245 )
2024-09-07 08:49:28 +00:00
Patrick Stevens
8ae749c529
Add ArgumentLongForm ( #244 )
2024-09-05 21:26:52 +01:00
Patrick Stevens
e4cbab3209
Implement [<ArgumentFlag>] for two-case DUs ( #242 )
2024-09-04 21:48:36 +00:00
Patrick Stevens
bdce82fb7a
Handle env vars with value 0 and 1 for bools ( #241 )
2024-09-04 21:06:22 +01:00
Patrick Stevens
8f9f933971
Handle URI in arg parser ( #240 )
2024-09-04 20:20:51 +01:00
Patrick Stevens
3a55ba1242
Allow positional args to be Choice<'a, 'a> to indicate whether they came before any positional marker ( #238 )
2024-09-04 20:09:40 +01:00
Patrick Stevens
047b2eda99
Throw on duplicated args ( #237 )
2024-09-04 08:39:19 +01:00
Patrick Stevens
2220f88053
Compose records in arg parser ( #234 )
2024-09-03 23:04:23 +00:00
Patrick Stevens
417ca45c37
Basic arg parser ( #216 )
2024-08-26 11:54:35 +01:00