-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release 2.x - initial changes (#104)
* Refactor (#96) * Move onError tp api/cli.d * Improve ANSI styling handling and making AnsiStylingArgument boolean-like * Make Parser private * Remove hooks * Remove subcommands * Remove argumentparser * Update readme * Add unit tests * Rename Config.helpStyle to Config.styling (#97) * Add unit test (#98) * Refactor (#99) * Small cleanup * Make Config a template parameter * Add unit test * Styling in error messages (#100) * Add errorMessagePrefix to Style * Rename Style.namedArgumentName => Style.argumentName * Styling in error messages * Add check for argument name (#101) * Rename Config.namedArgChar to namedArgPrefix (#102) * Add checks for positional arguments (#103) * Refactor (#105) * Add ArgumentInfo.memberSymbol * Small refactoring * Move Restriction and RestrictionGroup to internal.restriction * Remove symbol parameter * remove partial apply * Small refactoring * Small refactoring * Add unit test * Pin LDC to 1.34.0 (#108) * Add '--verbose' to builds * Refactoring (#127) * Required positional arguments must come before optional ones * Optional positional arguments are not allowed with default subcommand * Rewrite parser (#128) * Refactor * Split ArgumentInfo.names to shortNames and longNames * Add namedArguments and positionalArguments to Arguments * Rename Arguments.arguments to info * Refactor Arguments API * Remove ArgumentInfo.ignoreInDefaultCommand * Rewrite parser * unit tests * Update readme (#121) * Update readme * Update the examples as well * Apply suggested changes to readme * Declare `Style.Default` with an alternative syntax (#130) * Turn `main` and `mainComplete` into regular templates (#132) They don't need advanced features that template mixins provide. (Regular templates are mixable, too.) https://dlang.org/spec/template-mixin.html * Make Styling API `nothrow pure @safe` (#133) * Reduce allocations in Styling API (#134) * Reduce allocations in Styling API * Remove the overload of `TextStyle.opCall` that takes a sink We should make `StyledText` a range instead. * Do not depend on `std.regex` (#131) * Do not depend on `std.regex` This saves 1.5 MB in the binary, which is desirable since not every program that uses `argparse` may want to use regexes - or that particular implementation of regexes. `argparse.ansi.getUnstyledText` became eager, but the library wasn't exploiting its laziness anyway. * Make `getUnstyledText` lazy and `@nogc` * Use constants instead of hardcoded characters * Rework the auxiliary function Co-Authored-By: Andrey Zherikov <[email protected]> * Remove one mutable variable * Add a small comment --------- Co-authored-by: Andrey Zherikov <[email protected]> Co-authored-by: Andrey Zherikov <[email protected]> * Improve compilation time and memory (#124) * Use regular parameters instead of template parameters where possible This helps in reducing both compilation time and (build-time) memory requirement. * Deduplicate `HelpArgumentUDA.parse` 2.3 GB -> 1.7 GB. * Deduplicate `Complete.CompleteCmd` 1.7 GB -> 1.6 GB. * Compile the completer on demand 1.6 GB -> 0.8 GB. * Simplify `CLI!(...).complete` * Deduplicate `CounterParsingFunction` * Make some of the config's fields statically known by the parser So that the compiler can prune dead branches of code. * Remove `assignChar` from parser's template parameters * Try to simplify min-max-handling logic in `getMemberArgumentUDA` * Add a unit test for `getMemberArgumentUDA` * Move `getArgumentUDA` to `argparse.internal.arguments` Renamed into `finalize` in the process. It only fills `ArgumentInfo` so it doesn't have to know about UDAs at all. * Import non-std modules once per file --------- Co-authored-by: Nickolay Bukreyev <[email protected]> Co-authored-by: Andrey Zherikov <[email protected]>
- Loading branch information
1 parent
d789306
commit 1685e39
Showing
27 changed files
with
2,509 additions
and
1,588 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.