Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: autocomplete choices for options #2018

Merged
merged 2 commits into from Sep 5, 2021

Conversation

ansgarm
Copy link
Contributor

@ansgarm ansgarm commented Aug 31, 2021

Hi!

This PR introduces support for auto completing choices if an option has been specified which has choices but no value has been selected yet. For example:

> cdktf convert --language <TAB>
csharp      java        python      typescript

when the option has been specified like this: (source)

.option("language", {
  choices: ["typescript", "python", "csharp", "java"],
  default: "typescript",
})

Background

We use yargs for the CDK for Terraform and wanted to introduce support for shell completion. As we wanted to offer support for auto completing choices for options, I figured I'd do a PR instead of building a custom completion handler in multiple places.

If there's anything I can do to get this merged, please tell me!

P.S. It also fixes #2016 because that caused the build to fail for me and there's no package-lock.json or alike.

@bcoe bcoe changed the title Autocomplete choices for options feat: autocomplete choices for options Sep 5, 2021
Copy link
Member

@bcoe bcoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a great addition to completion functionality 👍 and I appreciate the fix for TypeScript.

@bcoe bcoe merged commit 01b2c6a into yargs:master Sep 5, 2021
@ansgarm ansgarm deleted the feat/autocomplete-choices branch September 5, 2021 21:25
@@ -73,7 +73,7 @@ export function argsert(
position += 1;
});
} catch (err) {
console.warn(err.stack);
console.warn((err as Error).stack);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👋 hi all, here my 50cent, sorry!

The scope of usage unknown instead of any is to prevent fatal errors when catch receive something what is not an Error.

"errorString".stack > fatal error
to avoid this i suggest to add a check if err is instance of Error like suggested by documentation instead of cast err as Error

https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/#use-unknown-catch-variables

hongaar added a commit to hongaar/bandersnatch that referenced this pull request Sep 23, 2021
Choices autocompletion is now available from upstream yargs, see yargs/yargs#2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TypeScript 4.4 breaks building yargs
3 participants