-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
featureA new feature or requestA new feature or requestp3Issues that we currently consider unimportantIssues that we currently consider unimportant
Description
Description
I would like to have control over the completions that displayed for my command.
Let's say I have a command foo install <version>
. This command also has 2 flags --dry-run
and --help
.
Current state
Only the flags are suggested:
$ foo install <TAB>
--help -- Print this usage information.
--dry-run -- Perform prechecks but do not install.
Expected state
$ foo install <TAB>
2.1.0
2.0.0
1.2.0
1.1.0
1.0.1
1.0.0
API idea:
/// Installs Flutter SDK
class InstallCommand extends CompletionCommand<int> {
@override
final name = 'install';
@override
final description = 'Installs foo version';
/// Returns the string that will be returned when tab completion
/// is called for this command.
///
/// This method should return fast for good user experience.
@override
Future<String> completions() {
print(MyFooVersionProvider.listAllVersions());
// The above line would print:
// 2.1.0
// 2.0.0
// 1.2.0
// 1.1.0
// 1.0.1
// 1.0.0
}
@override
Future<int> run() async { /** code **/ }
Additional Context
A similar CLI package in the Go ecosystem has this feature. See docs.
alestiago
Metadata
Metadata
Assignees
Labels
featureA new feature or requestA new feature or requestp3Issues that we currently consider unimportantIssues that we currently consider unimportant
Type
Projects
Status
Backlog