Skip to content

Feature Suggestion: allow "other" option in list input #370

@queengooborg

Description

@queengooborg

This was also requested for inquirer.js -- see SBoudrias/Inquirer.js#1198

I'm utilizing inquirer for a command line script to generate pull requests (including titles and descriptions) for MDN's BCD repository, and first of all, I must say: kudos to the dev team here! I've always enjoyed the original inquirer.js for CLI prompts, and am happy to see a port to Python available!

As a part of one of my questions within the script, I inquire a reason from the user, which is a list of preset entries, as well as an "Other" entry. In this script, I then check to see if "Other" was selected, and if so, prompt the user for a text input to describe the reason. This looks something like so:

reason = inquirer.list_input(
  message="Why is this feature being removed?",
  choices=['Irrelevant', 'Non-Interface', 'Other']
)
if reason == "Other":
  reason = inquirer.text("Why is this feature being removed?")
[?] Why is this feature being removed?: Other
   Irrelevant
   Non-Interface
 > Other

[?] Why is this feature being removed?: I just don't like this feature... >:(

I think it would be nice to have an other option (or something similar), that adds an option to the end which doubles as a text input, like so:

reason = inquirer.list_input(
  message="Why is this feature being removed?",
  choices=['Irrelevant', 'Non-Interface'],
  other="Other Reason" # default: false, setting to "true" will add "Other"
)

# ...or...

reason = inquirer.list_input(
  message="Why is this feature being removed?",
  choices=['Irrelevant', 'Non-Interface', inquirer.list_choice_other('Other Reason')],
)
[?] Why is this feature being removed?: Irrelevant
 > Irrelevant
   Non-Interface
   Other

...or...

[?] Why is this feature being removed?: 
   Irrelevant
   Non-Interface
 > Other: 

...or...

[?] Why is this feature being removed?: I just don't like this feature... >:(
   Irrelevant
   Non-Interface
 > Other: I just don't like this feature... >:(

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions