Skip to content

Releases: mikaelmello/inquire

v0.9.1

16 Sep 06:59
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.9

v0.9.0

Features

Adds Selectable derive macro for enums! You can now easily create enum-based prompts (e.g. menus) by using the Selectable derive macro on your enums.

See the example for more details. Thank you @TheBearodactyl for the contribution!

Dependencies

  • Updated unicode-width to 0.2.
  • Updated crossterm to 0.29.
  • Updated termion to 4.0.
  • Updated console to 0.16.

v0.9.1

  • Fix panicking when terminal backend reports size with 0 width. Thanks @sebhoss for reporting!

v0.9.0

16 Sep 05:30
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Features

Adds Selectable derive macro for enums! You can now easily create enum-based prompts (e.g. menus) by using the Selectable derive macro on your enums.

See the example for more details. Thank you @TheBearodactyl for the contribution!

Dependencies

  • Updated unicode-width to 0.2.
  • Updated crossterm to 0.29.
  • Updated termion to 4.0.
  • Updated console to 0.16.

v0.8.1

16 Sep 07:00
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v0.8

v0.8.0

Features

  • Improve end user experience when prompting for input without a message.
  • Implement raw_prompt_skippable for Select.

Fixes

  • Fix bug where inputs spanning 3+ lines would break text rendering.
  • Fix bug where Select and MultiSelect prompts would render the first option incorrectly when filtering is disabled.
  • Fix autocomplete suggestions not being updated after a suggestion is accepted.
  • Fix incorrect cursor placement when inputting CJK characters.

API Changes

  • Don't require static lifetime for autocompleter and validator.

Dependencies

  • Upgraded crossterm to 0.28.1.
  • Raised minimum supported Rust version to 1.80.0.
  • Migrate from once_cell to stdlib.
  • Migrate from fxhash to stdlib.
  • Removed unused dependency (newline-converter).
  • Fix GitHub Action outdated dependencies.

v0.8.1

Fixes

  • Fix panicking when terminal backend reports size with 0 width.

Acknowledgments

Thanks to all the users and contributors who helped improve this library with their feedback and contributions!

@basbossink-ds, @CraftSpider, @ereOn, @istudyatuni, @jarjk, @jonassmedegaard, @Maffey, @moritz-hoelting, @phostann, @sebhoss, @stormshield-guillaumed, @theRookieCoder, @tusharmath

v0.8.0

14 Sep 02:22
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Features

  • Improve end user experience when prompting for input without a message.
  • Implement raw_prompt_skippable for Select.

Fixes

  • Fix bug where inputs spanning 3+ lines would break text rendering.
  • Fix bug where Select and MultiSelect prompts would render the first option incorrectly when filtering is disabled.
  • Fix autocomplete suggestions not being updated after a suggestion is accepted.
  • Fix incorrect cursor placement when inputting CJK characters.

API Changes

  • Don't require static lifetime for autocompleter and validator.

Dependencies

  • Upgraded crossterm to 0.28.1.
  • Raised minimum supported Rust version to 1.80.0.
  • Migrate from once_cell to stdlib.
  • Migrate from fxhash to stdlib.
  • Removed unused dependency (newline-converter).
  • Fix GitHub Action outdated dependencies.

Acknowledgments

Thanks to all the users and contributors who helped improve this library with their feedback and contributions!

@basbossink-ds, @CraftSpider, @ereOn, @istudyatuni, @jarjk, @jonassmedegaard, @Maffey, @moritz-hoelting, @phostann, @stormshield-guillaumed, @theRookieCoder, @tusharmath

v0.7.5

23 Apr 04:00

Choose a tag to compare

v0.7.5

  • Fix user-provided ANSI escape codes from being removed when rendering.
    • Introduced on 0.7.0, this regression was making it impossible to have colorised text inside the prompt.
    • Now ANSI escape codes are properly emitted when rendering the prompt in the terminal.
    • Thanks @leoetlino!

v0.7.4

  • Fix unexpected behaviors of keep_filter option in MultiSelect prompts:
    • Filter input is now correcly getting reset only when keep_filter == false.
    • When the filter input is reset, the list of options is now correctly reset as well. Thanks @Swivelgames for reporting #238.

v0.7.3

  • Fix cursor occasionally blinking in unexpected places.

v0.7.2

  • Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
  • Add support for h and l bindings when vim_mode is enabled on MultiSelect prompts, clearing or selecting all options respectively. Thanks @afh for the PR!
  • Fix render issue #233 where cursor positioning at the end of a prompt was incorrect. Thanks @msrd0 and @Sydonian for reporting!

v0.7.1

  • Fix render issue #228 when using console crate as the terminal backend. Thanks @maospr for reporting.

v0.7.0

Breaking Changes

  • The Select and Multiselect Filter now scores input and is now expected to return an Option<i64>, making it possible to order/rank the list of options. #176
    None: Will not be displayed in the list of options.
    Some(score): score determines the order of options, higher score, higher on the list of options.
  • Improved user experience on Password prompts. When there is a validation error, the input is cleared if the password is rendered using the Hidden display mode, matching the user expectation of having to write the password from scratch again. Thanks to @CM-IV for the questions on #149!
  • Allow lifetime customization of RenderConfig. #101. Thanks to @arturfast for the suggestion #95.
  • Implement fuzzy search as default on Select and MultiSelect prompts. Thanks @Baarsgaard! #176
  • Revamped keybindings for DateSelect.

Features

  • Add one-liner helpers for quick scripts. #144.
  • Add new option on MultiSelect prompts to set all options to be selected by default. Thanks to @conikeec for the suggestion (#151)!
  • Add new option on Select/MultiSelect prompts allowing to reset selection to the first item on filter-input changes. #176
  • Emacs-like keybindings added where applicable (@jasonish, @EnigmaCurry):
    • Ctrl-p/Ctrl-n for up/down
    • Ctrl-b/Ctrl-f for left/right
    • Ctrl-j/Ctrl-g for enter/cancel
  • Vim keybindings are always supported in DateSelect prompts.
  • Added 'with_starting_filter_input' to both Select and MultiSelect, which allows for setting an initial value to the filter section of the prompt.
  • Added starting_input for CustomType. (@FroVolod #194)
  • Added 'without_filtering' to both Select and MultiSelect, useful when you want to simplify the UX if the filter does not add any value, such as when the list is already short.
  • Added 'with_answered_prompt_prefix' to RenderConfig to allow customization of answered prompt prefix.
  • Improved rendering, with optimizations on incremental rendering and terminal resizing.

Fixes

  • Fixed typos in the code's comments (@kianmeng, @bheylin).
  • Fixed issue where inquire, using termion, would crash when receiving piped inputs.

Dependency changes (some breaking)

  • Upgraded underlying termion crate from v1.5 to v2.0.
  • Upgraded underlying bitflags from v1 to v2, which affects the Attributes and KeyModifiers crates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information.
  • Removed thiserror dependency in favor of implementing InquireError by hand. (@bheylin #146)
  • Raised MSRV to 1.66 due to requirements in downstream dependencies.
  • MSRV is now explicitly set in the package definition.
  • Replaced lazy_static with once_cell as once_cell::sync::Lazy is being standardized and lazy_static is not actively maintained anymore. (@bheylin #158)
  • Added fuzzy-matcher as a dependency for fuzzy filtering in Select and MultiSelect prompts #176

v0.7.4

25 Mar 04:40

Choose a tag to compare

v0.7.4

  • Fix unexpected behaviors of keep_filter option in MultiSelect prompts:
    • Filter input is now correcly getting reset only when keep_filter == false.
    • When the filter input is reset, the list of options is now correctly reset as well. Thanks @Swivelgames for reporting #238.

v0.7.3

  • Fix cursor occasionally blinking in unexpected places.

v0.7.2

  • Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
  • Add support for h and l bindings when vim_mode is enabled on MultiSelect prompts, clearing or selecting all options respectively. Thanks @afh for the PR!
  • Fix render issue #233 where cursor positioning at the end of a prompt was incorrect. Thanks @msrd0 and @Sydonian for reporting!

v0.7.1

  • Fix render issue #228 when using console crate as the terminal backend. Thanks @maospr for reporting.

v0.7.0

Breaking Changes

  • The Select and Multiselect Filter now scores input and is now expected to return an Option<i64>, making it possible to order/rank the list of options. #176
    None: Will not be displayed in the list of options.
    Some(score): score determines the order of options, higher score, higher on the list of options.
  • Improved user experience on Password prompts. When there is a validation error, the input is cleared if the password is rendered using the Hidden display mode, matching the user expectation of having to write the password from scratch again. Thanks to @CM-IV for the questions on #149!
  • Allow lifetime customization of RenderConfig. #101. Thanks to @arturfast for the suggestion #95.
  • Implement fuzzy search as default on Select and MultiSelect prompts. Thanks @Baarsgaard! #176
  • Revamped keybindings for DateSelect.

Features

  • Add one-liner helpers for quick scripts. #144.
  • Add new option on MultiSelect prompts to set all options to be selected by default. Thanks to @conikeec for the suggestion (#151)!
  • Add new option on Select/MultiSelect prompts allowing to reset selection to the first item on filter-input changes. #176
  • Emacs-like keybindings added where applicable (@jasonish, @EnigmaCurry):
    • Ctrl-p/Ctrl-n for up/down
    • Ctrl-b/Ctrl-f for left/right
    • Ctrl-j/Ctrl-g for enter/cancel
  • Vim keybindings are always supported in DateSelect prompts.
  • Added 'with_starting_filter_input' to both Select and MultiSelect, which allows for setting an initial value to the filter section of the prompt.
  • Added starting_input for CustomType. (@FroVolod #194)
  • Added 'without_filtering' to both Select and MultiSelect, useful when you want to simplify the UX if the filter does not add any value, such as when the list is already short.
  • Added 'with_answered_prompt_prefix' to RenderConfig to allow customization of answered prompt prefix.
  • Improved rendering, with optimizations on incremental rendering and terminal resizing.

Fixes

  • Fixed typos in the code's comments (@kianmeng, @bheylin).
  • Fixed issue where inquire, using termion, would crash when receiving piped inputs.

Dependency changes (some breaking)

  • Upgraded underlying termion crate from v1.5 to v2.0.
  • Upgraded underlying bitflags from v1 to v2, which affects the Attributes and KeyModifiers crates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information.
  • Removed thiserror dependency in favor of implementing InquireError by hand. (@bheylin #146)
  • Raised MSRV to 1.66 due to requirements in downstream dependencies.
  • MSRV is now explicitly set in the package definition.
  • Replaced lazy_static with once_cell as once_cell::sync::Lazy is being standardized and lazy_static is not actively maintained anymore. (@bheylin #158)
  • Added fuzzy-matcher as a dependency for fuzzy filtering in Select and MultiSelect prompts #176

v0.7.3

21 Mar 14:44

Choose a tag to compare

v0.7.3

  • Fix cursor occasionally blinking in unexpected places.

v0.7.2

  • Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
  • Add support for h and l bindings when vim_mode is enabled on MultiSelect prompts, clearing or selecting all options respectively. Thanks @afh for the PR!
  • Fix render issue #233 where cursor positioning at the end of a prompt was incorrect. Thanks @msrd0 and @Sydonian for reporting!

v0.7.1

  • Fix render issue #228 when using console crate as the terminal backend. Thanks @maospr for reporting.

v0.7.0

Breaking Changes

  • The Select and Multiselect Filter now scores input and is now expected to return an Option<i64>, making it possible to order/rank the list of options. #176
    None: Will not be displayed in the list of options.
    Some(score): score determines the order of options, higher score, higher on the list of options.
  • Improved user experience on Password prompts. When there is a validation error, the input is cleared if the password is rendered using the Hidden display mode, matching the user expectation of having to write the password from scratch again. Thanks to @CM-IV for the questions on #149!
  • Allow lifetime customization of RenderConfig. #101. Thanks to @arturfast for the suggestion #95.
  • Implement fuzzy search as default on Select and MultiSelect prompts. Thanks @Baarsgaard! #176
  • Revamped keybindings for DateSelect.

Features

  • Add one-liner helpers for quick scripts. #144.
  • Add new option on MultiSelect prompts to set all options to be selected by default. Thanks to @conikeec for the suggestion (#151)!
  • Add new option on Select/MultiSelect prompts allowing to reset selection to the first item on filter-input changes. #176
  • Emacs-like keybindings added where applicable (@jasonish, @EnigmaCurry):
    • Ctrl-p/Ctrl-n for up/down
    • Ctrl-b/Ctrl-f for left/right
    • Ctrl-j/Ctrl-g for enter/cancel
  • Vim keybindings are always supported in DateSelect prompts.
  • Added 'with_starting_filter_input' to both Select and MultiSelect, which allows for setting an initial value to the filter section of the prompt.
  • Added starting_input for CustomType. (@FroVolod #194)
  • Added 'without_filtering' to both Select and MultiSelect, useful when you want to simplify the UX if the filter does not add any value, such as when the list is already short.
  • Added 'with_answered_prompt_prefix' to RenderConfig to allow customization of answered prompt prefix.
  • Improved rendering, with optimizations on incremental rendering and terminal resizing.

Fixes

  • Fixed typos in the code's comments (@kianmeng, @bheylin).
  • Fixed issue where inquire, using termion, would crash when receiving piped inputs.

Dependency changes (some breaking)

  • Upgraded underlying termion crate from v1.5 to v2.0.
  • Upgraded underlying bitflags from v1 to v2, which affects the Attributes and KeyModifiers crates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information.
  • Removed thiserror dependency in favor of implementing InquireError by hand. (@bheylin #146)
  • Raised MSRV to 1.66 due to requirements in downstream dependencies.
  • MSRV is now explicitly set in the package definition.
  • Replaced lazy_static with once_cell as once_cell::sync::Lazy is being standardized and lazy_static is not actively maintained anymore. (@bheylin #158)
  • Added fuzzy-matcher as a dependency for fuzzy filtering in Select and MultiSelect prompts #176

v0.7.2

17 Mar 14:49

Choose a tag to compare

v0.7.2

  • Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
  • Add support for h and l bindings when vim_mode is enabled on MultiSelect prompts, clearing or selecting all options respectively. Thanks @afh for the PR!
  • Fix render issue #233 where cursor positioning at the end of a prompt was incorrect. Thanks @msrd0 and @Sydonian for reporting!

v0.7.1

  • Fix render issue #228 when using console crate as the terminal backend. Thanks @maospr for reporting.

v0.7.0

Breaking Changes

  • The Select and Multiselect Filter now scores input and is now expected to return an Option<i64>, making it possible to order/rank the list of options. #176
    None: Will not be displayed in the list of options.
    Some(score): score determines the order of options, higher score, higher on the list of options.
  • Improved user experience on Password prompts. When there is a validation error, the input is cleared if the password is rendered using the Hidden display mode, matching the user expectation of having to write the password from scratch again. Thanks to @CM-IV for the questions on #149!
  • Allow lifetime customization of RenderConfig. #101. Thanks to @arturfast for the suggestion #95.
  • Implement fuzzy search as default on Select and MultiSelect prompts. Thanks @Baarsgaard! #176
  • Revamped keybindings for DateSelect.

Features

  • Add one-liner helpers for quick scripts. #144.
  • Add new option on MultiSelect prompts to set all options to be selected by default. Thanks to @conikeec for the suggestion (#151)!
  • Add new option on Select/MultiSelect prompts allowing to reset selection to the first item on filter-input changes. #176
  • Emacs-like keybindings added where applicable (@jasonish, @EnigmaCurry):
    • Ctrl-p/Ctrl-n for up/down
    • Ctrl-b/Ctrl-f for left/right
    • Ctrl-j/Ctrl-g for enter/cancel
  • Vim keybindings are always supported in DateSelect prompts.
  • Added 'with_starting_filter_input' to both Select and MultiSelect, which allows for setting an initial value to the filter section of the prompt.
  • Added starting_input for CustomType. (@FroVolod #194)
  • Added 'without_filtering' to both Select and MultiSelect, useful when you want to simplify the UX if the filter does not add any value, such as when the list is already short.
  • Added 'with_answered_prompt_prefix' to RenderConfig to allow customization of answered prompt prefix.
  • Improved rendering, with optimizations on incremental rendering and terminal resizing.

Fixes

  • Fixed typos in the code's comments (@kianmeng, @bheylin).
  • Fixed issue where inquire, using termion, would crash when receiving piped inputs.

Dependency changes (some breaking)

  • Upgraded underlying termion crate from v1.5 to v2.0.
  • Upgraded underlying bitflags from v1 to v2, which affects the Attributes and KeyModifiers crates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information.
  • Removed thiserror dependency in favor of implementing InquireError by hand. (@bheylin #146)
  • Raised MSRV to 1.66 due to requirements in downstream dependencies.
  • MSRV is now explicitly set in the package definition.
  • Replaced lazy_static with once_cell as once_cell::sync::Lazy is being standardized and lazy_static is not actively maintained anymore. (@bheylin #158)
  • Added fuzzy-matcher as a dependency for fuzzy filtering in Select and MultiSelect prompts #176

v0.7.1

11 Mar 00:44

Choose a tag to compare

  • Fix render issue #228 when using console crate as the terminal backend. Thanks @maospr for reporting.

v0.7.0

24 Feb 06:28

Choose a tag to compare

Breaking Changes

  • The Select and Multiselect Filter now scores input and is now expected to return an Option<i64>, making it possible to order/rank the list of options. #176
    None: Will not be displayed in the list of options.
    Some(score): score determines the order of options, higher score, higher on the list of options.
  • Improved user experience on Password prompts. When there is a validation error, the input is cleared if the password is rendered using the Hidden display mode, matching the user expectation of having to write the password from scratch again. Thanks to @CM-IV for the questions on #149!
  • Allow lifetime customization of RenderConfig. #101. Thanks to @arturfast for the suggestion #95.
  • Implement fuzzy search as default on Select and MultiSelect prompts. Thanks @Baarsgaard! #176
  • Revamped keybindings for DateSelect.

Features

  • Add one-liner helpers for quick scripts. #144.
  • Add new option on MultiSelect prompts to set all options to be selected by default. Thanks to @conikeec for the suggestion (#151)!
  • Add new option on Select/MultiSelect prompts allowing to reset selection to the first item on filter-input changes. #176
  • Emacs-like keybindings added where applicable (@jasonish, @EnigmaCurry):
    • Ctrl-p/Ctrl-n for up/down
    • Ctrl-b/Ctrl-f for left/right
    • Ctrl-j/Ctrl-g for enter/cancel
  • Vim keybindings are always supported in DateSelect prompts.
  • Added 'with_starting_filter_input' to both Select and MultiSelect, which allows for setting an initial value to the filter section of the prompt.
  • Added starting_input for CustomType. (@FroVolod #194)
  • Added 'without_filtering' to both Select and MultiSelect, useful when you want to simplify the UX if the filter does not add any value, such as when the list is already short.
  • Added 'with_answered_prompt_prefix' to RenderConfig to allow customization of answered prompt prefix.
  • Improved rendering, with optimizations on incremental rendering and terminal resizing.

Fixes

  • Fixed typos in the code's comments (@kianmeng, @bheylin).
  • Fixed issue where inquire, using termion, would crash when receiving piped inputs.

Dependency changes (some breaking)

  • Upgraded underlying termion crate from v1.5 to v2.0.
  • Upgraded underlying bitflags from v1 to v2, which affects the Attributes and KeyModifiers crates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information.
  • Removed thiserror dependency in favor of implementing InquireError by hand. (@bheylin #146)
  • Raised MSRV to 1.66 due to requirements in downstream dependencies.
  • MSRV is now explicitly set in the package definition.
  • Replaced lazy_static with once_cell as once_cell::sync::Lazy is being standardized and lazy_static is not actively maintained anymore. (@bheylin #158)
  • Added fuzzy-matcher as a dependency for fuzzy filtering in Select and MultiSelect prompts #176