Commit graph

2548 commits

Author SHA1 Message Date
Ed Page
8a58884459 refactor(parser): Initialize MatchedArg from its source 2022-05-16 15:08:47 -05:00
Ed Page
e6b1468477 fix(parser): Set source/occurrences for external subcommands 2022-05-16 15:08:47 -05:00
Ed Page
d538012a74 refactor(parser): separate concerns over external subcommands 2022-05-16 15:08:47 -05:00
Ed Page
0e04367826 fix(parser): Consistently log parser 2022-05-16 15:08:47 -05:00
Ed Page
c74d3fb045 refactor(parser): Reduce visibility 2022-05-16 15:08:47 -05:00
Ed Page
144cd4c3b7 refactor(parser): Group default/env 2022-05-16 15:08:47 -05:00
Ed Page
8c3f540638 refactor(parser): Clarify name for starting occurrences 2022-05-16 15:08:47 -05:00
Ed Page
f296c5ca78 refactor(parser): Fix naming of ty 2022-05-16 15:08:47 -05:00
Ed Page
bc6da813bd fix(parser): Unify handling of AnyValue's type id 2022-05-16 15:08:47 -05:00
Ed Page
9920d5baf5 fix(parser): Improve AnyValue debug output 2022-05-16 15:08:47 -05:00
Ed Page
8b582c3007 refactor(parser): Make AnyValue opaque
This gives a little more implementation flexibility
2022-05-16 15:08:47 -05:00
Ed Page
f16a6fb5a6 refactor(parser): Move AnyValue definition closer to use 2022-05-16 15:08:47 -05:00
Ed Page
bdf9d841ef doc(parser): Expand examples for ValueParser
This identified a problem with the blanket implementations for
`TypedValueParser`: it only worked on function pointer types and not unnamed
function tupes.  The user has to explicitly decay the function type to a
function pointer to opt-in, so I changed the blanket impl.  The loss of
the `OsStr` impl shouldn't be too bad.
2022-05-16 15:08:47 -05:00
Ed Page
6f2c4aff90 refactor(parser): Clean up ValueParser 2022-05-16 15:08:47 -05:00
Ed Page
f3d8ef248f feat(complete): Complete value_parser possible values 2022-05-16 15:08:47 -05:00
Ed Page
0088b1643c feat(parser): Track ValueParser's possible values
This will let us replace `Arg::possible_values` completely by letting
completions check these.
2022-05-16 15:08:47 -05:00
Ed Page
2e57f1fca7 fix(parser): Disallow empty paths 2022-05-16 15:08:47 -05:00
Ed Page
ec186487b6 refactor(parser): Have ValueParser delegate built-ins 2022-05-16 15:08:47 -05:00
Ed Page
f9be3215c1 refactor(parser): Minor clean up 2022-05-16 15:08:47 -05:00
Ed Page
352025f8cb refactor(parser): Tweak specialization precedence
In theory, directly implemented types should have higher precedence than
inferring from another trait.
2022-05-16 15:08:47 -05:00
Ed Page
50e7308c22 refactor(parser): Reduce chance of bugs in specialization 2022-05-16 15:08:47 -05:00
Ed Page
a3965918bc doc(parser): Explain built-in motivation 2022-05-16 15:08:47 -05:00
Ed Page
d52be32e8e fix(parser): Don't bake-in ArgEnum 2022-05-16 15:08:47 -05:00
Ed Page
a798858ced feat(parser): Verify possible values 2022-05-16 15:08:47 -05:00
Ed Page
9d07b3c028 feat(parser): non-empty string ValueParser 2022-05-16 15:08:47 -05:00
Ed Page
ecc5b2f3e9 feat(parser): Support ArgEnum with ValueParser 2022-05-16 15:08:47 -05:00
Ed Page
2902f190e4 refactor(error): More flexible callers 2022-05-16 15:08:47 -05:00
Ed Page
56aaf0baf2 feat(parser): Expose env-like bool parsers
Still unsure what should be the default but this at least makes it
easier for people to choose.
2022-05-16 15:08:47 -05:00
Ed Page
73fc240c57 refactor(env): Generalize bool policy 2022-05-16 15:08:47 -05:00
Ed Page
200f6626db feat(parser): Add type information to arg values
To set the type, we offer
- `ValueParser::<type>` short cuts for natively supported types
- `TypedValueParser` for fn pointers and custom implementations
- `value_parser!(T)` for specialized lookup of an implementation
  (inspired by #2298)

The main motivation for `value_parser!` is to help with `clap_derive`s
implementation but it can also be convinient for end-users.

When reading, this replaces nearly all of our current `ArgMatches` getters with:
- `get_one`: like `value_of_t`
- `get_many`: like `values_of_t`

It also adds a `get_raw` that allows accessing the `OsStr`s without
panicing.

The naming is to invoke the idea of a more general container which I
want to move this to.

The return type is a bit complicated so that
- Users choose whether to panic on invalid types so they can do their
  own querying, like `get_raw`
- Users can choose how to handle not present easily (#2505)

We had to defer setting the `value_parser` on external subcommands,
for consistency sake, because `Command` requires `PartialEq` and
`ValueParser` does not impl that trait.  It'll have to wait until a
breaking change.

Fixes #2505
2022-05-16 15:08:33 -05:00
Ed Page
dcf69d1c87 refactor(parser): Track str/OsStr values via Box
Unfortunately, we can't track using a `ValueParser` inside of `Command`
because its `PartialEq`.  We'll have to wait until a breaking change to
relax that.

Compatibility:
- We now assert on using the wrong method to look up defaults.  This
  shouldn't be a breaking change as it'll assert when getting a real
  value.
- `values_of`, et al delay panicing on the wrong lookup until the
  iterator is being processed.
2022-05-12 16:13:30 -05:00
Ed Page
cf0282bdae refactor: Remove dead code 2022-05-12 10:35:52 -05:00
Andreas Backx
a678baa4f4
feat(builder): Updated min_value and required docs 2022-05-14 21:06:52 +01:00
Ed Page
399c138825 fix: Soft-deprecate several items within the root 2022-05-12 06:18:08 -05:00
Ed Page
4fea1515b6 feat: Expose builder/parser modules
The top-level API for clap is getting a bit bloated.  By exposing these
modules, we'll be able to continue to add new, less commonly used types
while keeping the main API focused.
2022-05-12 06:17:08 -05:00
Ed Page
524e36cf1a chore: Release 2022-05-10 15:29:16 -05:00
Ed Page
52f6939044 fix(macros): Add needed call for arg_enum
Fixes #3717
2022-05-10 14:43:04 -05:00
Ed Page
7c1f9123a4 fix(assert): Make sure group members exist before using them
In #3711, we had a confusing assert about no non-default members of a
required group when there were no defaults involved.  This is because
there were no valid args in the group but that check happens after.
2022-05-09 15:53:18 -05:00
Ed Page
eb155786bb fix(parser): Assert on unknown args when using external subcommands (unstable) 2022-05-06 15:49:33 -05:00
Ed Page
20ff4ce05a doc(parser): Document external subcommand escaping behavior 2022-05-06 12:38:23 -05:00
Ed Page
03f132129b fix(parser): Always put in arg "" for external subcommands (unstable)
This allows distinguishing external subcommands from built-in
subcommands which can especially be confusing when escaping subcommands.

Fixes #3263
2022-05-06 12:25:20 -05:00
Ed Page
6ceb865c95 fix(assert): Detect conflicting arguments (unstable)
Fixes #3660
2022-05-06 14:29:35 -05:00
Ed Page
3d7ee2e5cd fix(assert): Verify required_unless_present_all exist 2022-05-06 14:11:37 -05:00
Ed Page
089f96eb87 fix(help): Disallow too many value names (unstable)
I can't think of a case for this or a way to render it.

Fixes #2695
2022-05-06 13:54:07 -05:00
Ed Page
70c29e3dd8 fix(help): Use '...' when not enough value names supplied 2022-05-06 13:33:17 -05:00
Ed Page
55e791e80e chore: Release 2022-05-06 11:57:48 -05:00
Evgeniy Terekhin
229b44d9bb
fix(macros): Allow dashed values (#3699)
add support for dashed arg names and values in arg! macro
2022-05-06 10:58:00 -05:00
Ed Page
17b930c203 chore: Release 2022-05-05 21:04:09 -05:00
Ed Page
05aecf8248 refactor(help): Remove more redundant required checks
Made redundant in #3689 but missed updating these.
2022-05-05 20:33:39 -05:00
Ed Page
e23c786f62 refactor(help): Remove redundant required check
With us moving the required de-duplication up a level, it made this
check redundant.  By removing this check, we're more likely to have an
item in the `incls` which forces a smart usage and reduces the chance of
an `[ARGS]` or `[OPTIONS]`, so a couple of tests changed.
2022-05-05 17:02:49 -05:00
Ed Page
f7c2deaa47 fix(help): Don't show hidden arguments for conflicts
This makes it consistent with other errors where we show arguments to
the user.
2022-05-05 12:16:56 -05:00
Ed Page
dedbabd402 fix(error): Don't duplicate args in usage
Gave up trying to decipher the existing logic for safe ways to
de-duplicate manually and switched to an `IndexSet` to enforce only one
of each argument exists.

Fixes #3556
2022-05-04 11:05:37 -05:00
Ed Page
e4c096ea99 fix(help): Use display name instead of bin name (unstable-v4)
This will mean we won't have an awkard `.exe` in the middle on Windows

This means users can have a display name for their application rather
than it being dependent on the binary name it was run as

This means users can manually set it to use spaces instead of dashes for
separating things out.

Fixes #992
Fixes #1474
Fixes #1431
2022-05-04 20:46:49 -05:00
Ed Page
c7ff695581 fix(help): Don't wrap URLs
Confusingly, there are two similar but slightly different settings in
`textwrap`.  We need both set.

Fixes #3222
2022-05-04 16:00:08 -05:00
Ed Page
d3e36b1c90 fix(v4): Disallow leading dashes in long's
This is a step towards #3309.  We want to make longs and long aliases
more consistent in how they handle leading dashes.  There is more
flexibility offered in not stripping and it matches the v3 short
behavior of only taking the non-dash form.  This starts the process by
disallowing it completely so people will catch problems with it and
remove their existing leading dashes.  In a subsequent breaking release
we can remove the debug assert and allow triple-leading dashes.
2022-05-04 15:38:08 -05:00
Ed Page
8bea44d745 docs(help): Document name help_template variable 2022-05-04 14:43:58 -05:00
Ed Page
61b8bbd218 fix(parser): Exclusive overrides required
`Arg::exclusive` is just another way of defining conflicts, so a
present-exclusive arg should override required like other conflicts.

Instead of going through the message of enumerating all other arguments
as exclusive, I shortcutted it and special case exclusive in the
required check like we do with conflicts.  The big downside is the
implicit coupling between the code paths rather than having a consistent
abstraction for covering conflicts.

This isn't a breaking change because if someone defined an exclusive arg
as a sibling to a required arg, the exclusive arg could never be used,
it always errored, and so no valid application can be written with it.

Fixes #3595
2022-05-04 12:25:44 -05:00
Ed Page
88472224dc perf(parser): Short-circuit exclusive validation 2022-05-04 12:13:51 -05:00
Ed Page
aa6026f43c docs(multicall): Expand documentation in prep for stablization 2022-05-03 16:26:01 -05:00
Ed Page
3cfea3223b fix(help): Offer a html_template variable for display name
This is a step towards #992.  When help renders the application name, it
uses the `bin` template variable which is just the `bin` name with
spaces converted to ` `.  While having `app.exe sub` makes sense,
`app.exe-sub` does not.

To get around needing this for usage, we've created a `display_name`
field that is fairly similar but
- The root name is the `name` and not `bin_name`
- We always join with `-`

This means that the derived `bin_name` will only show up in usage.

For now, the default template has not been updated as that is a minor
compatibility change and should be in a minor release, at least.  I was
worried this would be a full breaking change.  The main case I was
worried about was cargo subcommands but our tests show they should just
work.
2022-05-03 14:34:47 -05:00
Ed Page
0240ec5493 chore: Release 2022-05-02 13:02:10 -05:00
Ed Page
af3b789e4c fix(multicall): Consistently skip multicall bin in help 2022-05-02 11:50:30 -05:00
Ed Page
8cd59fa4e5 fix(multicall): More consistent whitespace in errors 2022-05-02 11:01:14 -05:00
Ed Page
f9fdb99ee8 fix(multicall): Disallow args on multicall binary
Set expectations for how this can be used and to make sure the right
errors are given.
2022-05-02 09:33:09 -05:00
Ed Page
ce727f1951 fix(error): Render actual usage for unrecognized subcommands
For some reason this code path diverged and manually constructed a
usage, not following any of our patterns for doing so.
2022-05-02 09:25:44 -05:00
Ed Page
5cd1a4070b fix(multicall): Show subcommands are required 2022-05-02 09:13:44 -05:00
Ed Page
414ae57a2a fix(multicall): Improve bad multicall binary error
By removing all arguments, we've switched from an "unrecognized
argument" error to a "unrecognized subcommand" error.  While the wording
has room for improvement, its at least progress on #2862.
2022-05-02 09:12:12 -05:00
Ed Page
5e02ac1c19 chore: Release 2022-04-30 20:21:33 -05:00
Ed Page
0ecb6f4869 fix(builder): Fully recurse when building
Besides addressing the panic from assuming things were built when they
weren't, this should fix some completion issues for some people.

Fixes #3669
2022-04-30 20:02:06 -05:00
Ed Page
c6849e2ebd fix(debug): Moe detail 2022-04-30 19:07:42 -05:00
Ed Page
b01256be36 chore: Release 2022-04-30 06:36:33 -05:00
Ed Page
8df20478a4 style: Make clippy happy 2022-04-29 20:26:59 -05:00
Ed Page
ccf8634c19 fix(help): Provide correct context for help subcmd errors 2022-04-29 20:25:05 -05:00
Ed Page
1452c1e42b fix(help): Help subcommands usage includes requires arguments 2022-04-29 20:16:19 -05:00
Ed Page
37ebb71806 fix(help): write_help usage includes required arguments 2022-04-29 20:15:54 -05:00
Ed Page
515a37dba1 fix(debug): Improve debug output of bin building 2022-04-29 16:18:30 -05:00
Ed Page
bcde91b101 fix(debug): Update Command's debug statements 2022-04-29 16:07:47 -05:00
Ed Page
ba0301d9b4 refactor(builder): Group related build functions 2022-04-29 09:36:28 -05:00
Ed Page
7113e46388 fix(builder): Deprecate public Command::_build_bin_names 2022-04-29 09:21:42 -05:00
Ed Page
397e8443f9 refactor(builder): Consistently use internal function 2022-04-29 09:16:20 -05:00
Ed Page
9f9e410c6d feat(complete): Minimal rust-completion
Inspired by argcomplete, this provides Rust-implemented completions
- Only bash for now
- No subcommand support
- No flag value support
- No special settings support
- No handling of positions within positionals
- No prioritizing of required or removing of conflicts (including
  self-conflicts)
2022-04-27 15:49:58 -05:00
Ed Page
d4ddc5f6d6 clap(debug): More conflict details 2022-04-27 12:38:12 -05:00
Ed Page
f083ef92c5 fix(lex)!: Don't do prefix matching by default
Finding this a pain in `clap_complete`; not offering the benefits I
expected.
2022-04-27 12:38:12 -05:00
Ed Page
5ae9c75324 fix(clap): Allow disabling color with debug 2022-04-22 12:32:58 -05:00
Ed Page
1e2471649e test(output): Ensure correct streams
This is to prevent #3648 from happening again
2022-04-22 10:56:47 -05:00
Ed Page
4e20af3498 refactor(parser): Reduce visibility of parser fields 2022-04-22 07:03:07 -05:00
Ed Page
d805c6031d chore: Release 2022-04-22 06:52:05 -05:00
Arlo Siemsen
854017b478 fix: Mixup between stderr and stdout introduced in v3.1.11 2022-04-22 02:09:22 -05:00
Ed Page
a46ee83224 chore: Release 2022-04-21 20:08:49 -05:00
Ed Page
9d523012fe refactor(validator): Decouple parser 2022-04-21 16:31:04 -05:00
Ed Page
6229e78bc6 refactor(parser): Parser is solely responsible for populating ArgMatches 2022-04-21 16:24:10 -05:00
Ed Page
02ffd59830 refactor(help): Move help writing down a layer 2022-04-21 16:14:11 -05:00
Ed Page
ebeade91bf refactor(help): Consolidate help errors 2022-04-21 16:12:01 -05:00
Ed Page
6a9a5d05b0 refactor(help): Make bool's meaning clearer 2022-04-21 16:01:47 -05:00
Ed Page
639f9e8849 refactor(parser): Pull out long-help determination
This isn't a parser policy but command-level policy.
2022-04-21 15:49:02 -05:00
Ed Page
a484f622de fix(validate): Overrides always ignore required
Before, if two arguments were required *and* overrode each other, then
`cmd --opt=1 --other=2` succeded but `cmd --other=2` failed despite
ignoring `--opt=1`.  Requiring `--opt=1` to be present but unavailable
doesn't help anyone and makes the behavior less predictable.

Now both commands will have the same behavior.
2022-04-21 15:23:05 -05:00
Ed Page
de89c050c9 fix(validate): Consistent conflict behavior
We had two different implementations of conflicts
- Validating conflicts
- Allowing conflicts to override `required`
  - Missing members of a group conflicting with each other
  - Missing symmetric conflicts (A conflicts with B so B conflicts with
    A)

This consolidates their implementations which should fix overriding of
`required`.
2022-04-21 15:03:56 -05:00
Ed Page
0194568b03 chore: Release 2022-04-19 10:31:52 -05:00
Ed Page
8f182067e3 feat(clap): Publicly expose Command::build
`Command::_build_all` started as an internal function for
`clap_complete` as a stopgap until #2911.  Overtime, we've been finding
more cases where this function needs to be called, so now we're going to
fully embrace it until #2911 so people aren't scrared off by the hidden
implementation from using it.

This was inspired by #3602

Comptibility: Though this adds a deprecation which we general reserve
for minor or major versions, this is enough of a corner case that I'm
fine doing this in a patch release.
2022-04-19 10:13:43 -05:00
Ed Page
7598c000f9 chore: Release 2022-04-15 14:39:14 -05:00
Ed Page
7849c35a3e
Merge pull request #3635 from epage/port
feat: Expose clap_lex
2022-04-15 14:00:28 -05:00
Ed Page
15d8b3b0cd style: Make clippy happy 2022-04-15 13:49:02 -05:00
Ed Page
e46cf659d6 fix(lex): Provide all dat with ParsedArg::to_value 2022-04-15 12:40:05 -05:00
Ed Page
96dc6daa9e feat(lex): Pull out clap_lex 2022-04-15 10:55:37 -05:00
Ed Page
6291289c0f fix(lex): Make long args more convinient 2022-04-15 10:55:34 -05:00
Ed Page
1247a955cf docs(lex): Specify how it all works 2022-04-15 10:55:28 -05:00
Ed Page
6148d681f4 refactor(lex): Clarify side effects 2022-04-15 10:55:25 -05:00
Ed Page
fd16ee9474 refactor(lex): Port to expanded lexer 2022-04-15 10:55:19 -05:00
Ed Page
6e05b8075b refactor(lex): Expand lexer design
In considering the design for this, we want:
- Ability to modify the argment list while maintaining the `Cursor` for
  replacements
- Allow picking up subcommand parsing in the middle of short flags
- Ability to peek at the next item to determine if we want to treat it
  as a flag or as a value
- Ability to detect started short and long arguments for completions

Longer term, we also want to consider:
- Allowing users to customize the lexer to support different syntaxes
2022-04-15 10:55:12 -05:00
Ed Page
c58928b6bd refactor(lex): Track replacements as str
The lexer will soon return `RawOsStr` and it'll cost to turn that into
an `OsStr`.  However, it caches a `str`, so let's just use that.
2022-04-15 10:55:08 -05:00
Ed Page
f66d8abebd refactor(lex): Experiment with an alt 'previous'
Since we'll need `skip`, it made me wonder how to name `skip` and
`previous` to fit together, so I decided to play with `seek`.  Its
probably over kill but wondering if its better.
2022-04-15 10:55:05 -05:00
Ed Page
3ebf61e28d refactor(lex): Narrow focus for lexer
Before, we had a generic `next` that provided the next item and peeked
at all remaining items.  This was to work around the borrow checker for
modifying the position while accessing args.

We've now split `Input` into `RawArgs` and `ArgsCursor` so we don't have
overlapping borrows.  This made it so we can split `next` into `next`,
`peek`, and `remaining`.
2022-04-15 10:55:00 -05:00
Ed Page
0000d506ed refactor(lex): Remove unused bound 2022-04-15 10:54:50 -05:00
Ed Page
65120784f5 refactor(lex): Split out input cursor 2022-04-15 10:54:43 -05:00
Chloe-Woahie
87c87565af docs: Fixed documentation typos 2022-04-10 12:43:09 -04:00
Ed Page
a3b628998d docs: Don't encourage index
Its extra maintenance and more likely to cause annoyances.

Fixes #3608
2022-04-04 08:52:20 -05:00
Ed Page
08f74046dc chore: Release 2022-04-01 09:15:32 -05:00
Kevin Moonen
17fed36da3 fix: Bring forward Debug impls from v2 2022-03-31 22:45:37 -05:00
Ed Page
c75d2642ef chore: Release 2022-03-31 12:22:40 -05:00
Samuel Tardieu
ef3c2c73d5 docs: arg! macro uses double quotes for help string 2022-03-25 11:00:47 +01:00
Grachev Mikhail
02d4d6b137
chore: fix typo 2022-03-14 14:45:42 +03:00
Thayne McCombs
2b86726879 docs: Document grouped_values_of
Relates to #2924
2022-03-10 00:53:46 -07:00
Ed Page
e702f42e5e chore: Release 2022-03-07 10:40:48 -06:00
plaflamme
b6df23dc14
fix: Multiple defaults combined with ArgEnum 2022-03-06 23:10:16 -05:00
Ed Page
c6d456f608 fix(builder): Tell users cargo feature is needed
This will help in cases like #3530
2022-03-03 12:43:10 -06:00
Ed Page
e937955efb chore: Release 2022-03-02 09:49:11 -06:00
Ed Page
1e286f3dc2 chore: Release 2022-03-02 09:20:00 -06:00
Roland Fredenhagen
33949ce4de
feat(help): Show PossibleValue help in --help (#3503)
`-h` (short help) still shows the same.

This gates it behind an `unstable-v4` feature flag to avoid disrupting users who set the help without knowing where all it shows up (particularly derive users where `ArgEnum` is automatically extracting the help).

Fixes #3312
2022-03-02 09:15:28 -06:00
Ed Page
63fa59a251 chore: Release 2022-02-28 10:03:45 -06:00
Ed Page
3f2a37088b fix(assert): Validate delimited defaults
Fixes #3514
2022-02-28 09:21:44 -06:00
Ed Page
20dc6673bc chore: Release 2022-02-23 09:39:40 -06:00
Ed Page
655c3f0b9f chore: Release 2022-02-21 07:50:28 -06:00
Ed Page
006a161e39
Merge pull request #3492 from kornelski/trac
More track_caller
2022-02-21 07:48:19 -06:00
Ed Page
fa24b9f173 docs: Tell people to use latest API
Fixes #3478
2022-02-16 16:27:44 -06:00
Kornel
2437051eff More track_caller 2022-02-16 18:40:20 +00:00
Ed Page
e6729f96c3 chore: Release 2022-02-16 11:59:45 -06:00
Ed Page
3dd3993682 docs(builder): Add ToC to Command, Arg 2022-02-15 11:40:58 -06:00
Ed Page
94e2727bd0 docs(builder): Clarify command-wide 2022-02-15 11:30:26 -06:00
Ed Page
15c7abb196 docs(parser): Fix ArgMatches::value_source documentation 2022-02-15 11:23:40 -06:00
Ed Page
b171802265 docs: Ensure IntoApp is visible 2022-02-15 11:16:22 -06:00
Ed Page
976f3d500a
Merge pull request #3473 from epage/derive
fix: Change `IntoApp::into_app` to `CommandFactory::command`
2022-02-15 09:33:44 -06:00
Ed Page
360c4d6b8a docs: Update to new command! macro 2022-02-15 08:54:59 -06:00
Ed Page
65b9c88b3c fix: Update app_from_crate for App rename
Instead of just renaming it, I reconsidered what the API should look
like.  A custom separator for author does not make sense positionally
but accepting a name, and defaulting it, does fit with what someone
would expect.

I removed the `_from_crate` suffix because it doesn't seem necessary.
We don't have this kind of naming for the derive.  I feel it cleans
things up this way.
2022-02-15 08:39:07 -06:00
Ed Page
ddac492302 fix: Rename IntoApp to CommandFactory
This is part of the `App` rename.

Previously, I was concerned about not being able to deprecate

For backwards compatibility, we still expose the `IntoApp` name.
2022-02-15 08:24:00 -06:00
Ed Page
c3fec1fa75 fix: Update derive->Command function name
No good solution for transitioning the trate name, unfortnately, since
we can't mark `use`s as deprecated (we can, it just does nothing).

I got rid of the `into` prefix because that implies a `self` parameter
that doesn't exist.
2022-02-14 16:04:10 -06:00
Ed Page
e8010e79a9 refactor: Update app variables to cmd 2022-02-14 15:55:56 -06:00
Ed Page
9a7e6a523d fix: Deprecate App 2022-02-14 15:34:27 -06:00
Ed Page
c4144d7d6c docs: Update App references to Command 2022-02-14 15:33:49 -06:00
Ed Page
524e164c31 fix: Rename App to Command 2022-02-14 15:32:07 -06:00
Ed Page
06b269a85a refactor: Rename Apps file 2022-02-14 15:29:26 -06:00