Skip to content

feat: autocomplete choices for options#2018

Merged
bcoe merged 2 commits intoyargs:masterfrom
ansgarm:feat/autocomplete-choices
Sep 5, 2021
Merged

feat: autocomplete choices for options#2018
bcoe merged 2 commits intoyargs:masterfrom
ansgarm:feat/autocomplete-choices

Conversation

@ansgarm
Copy link
Copy Markdown
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
Copy Markdown
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
Comment thread lib/argsert.ts
});
} catch (err) {
console.warn(err.stack);
console.warn((err as Error).stack);
Copy link
Copy Markdown

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