v0.9.3
- Added
new_line_prefixoption toRenderConfig, allowing a styled prefix to be displayed at the beginning of every new line. - Added
answer_from_new_lineoption toRenderConfig, allowing the submitted answer to be rendered on a new line below the prompt. - Added
unhighlighted_option_prefixoption toRenderConfig, allowing customization of the prefix for non-highlighted options in Select and MultiSelect prompts.
Thanks @frol for the contribution!
v0.9.2
- Bumped MSRV from 1.80 -> 1.82 due to new requirements of dependencies.
- Expose the sorting function used by
Select(thanks @devjgm!)
- Fix panicking when terminal backend reports size with 0 width. Thanks @sebhoss for reporting!
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!
- Updated
unicode-widthto 0.2. - Updated
crosstermto 0.29. - Updated
termionto 4.0. - Updated
consoleto 0.16.
v0.8.1
- Improve end user experience when prompting for input without a message.
- Implement
raw_prompt_skippableforSelect.
- 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.
- Don't require static lifetime for autocompleter and validator.
- Upgraded
crosstermto 0.28.1. - Raised minimum supported Rust version to 1.80.0.
- Migrate from
once_celltostdlib. - Migrate from
fxhashtostdlib. - Removed unused dependency (newline-converter).
- Fix GitHub Action outdated dependencies.
- Fix panicking when terminal backend reports size with 0 width.
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.9.1
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!
- Updated
unicode-widthto 0.2. - Updated
crosstermto 0.29. - Updated
termionto 4.0. - Updated
consoleto 0.16.
- Fix panicking when terminal backend reports size with 0 width. Thanks @sebhoss for reporting!
v0.9.0
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!
- Updated
unicode-widthto 0.2. - Updated
crosstermto 0.29. - Updated
termionto 4.0. - Updated
consoleto 0.16.
v0.8.0
- Improve end user experience when prompting for input without a message.
- Implement
raw_prompt_skippableforSelect.
- 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.
- Don't require static lifetime for autocompleter and validator.
- Upgraded
crosstermto 0.28.1. - Raised minimum supported Rust version to 1.80.0.
- Migrate from
once_celltostdlib. - Migrate from
fxhashtostdlib. - Removed unused dependency (newline-converter).
- Fix GitHub Action outdated dependencies.
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
- 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!
- Fix unexpected behaviors of
keep_filteroption 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.
- Filter input is now correcly getting reset only when
- Fix cursor occasionally blinking in unexpected places.
- Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
- Add support for
handlbindings 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!
- Fix render issue https://github.com/mikaelmello/inquire/pull/228 when using console crate as the terminal backend. Thanks @maospr for reporting.
- 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. #176None: 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
Hiddendisplay 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.
- 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.
- Fixed typos in the code's comments (@kianmeng, @bheylin).
- Fixed issue where inquire, using termion, would crash when receiving piped inputs.
- Upgraded underlying
termioncrate from v1.5 to v2.0. - Upgraded underlying
bitflagsfrom v1 to v2, which affects theAttributesandKeyModifierscrates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information. - Removed
thiserrordependency in favor of implementingInquireErrorby 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_staticwithonce_cellasonce_cell::sync::Lazyis being standardized andlazy_staticis not actively maintained anymore. (@bheylin #158) - Added
fuzzy-matcheras a dependency for fuzzy filtering in Select and MultiSelect prompts #176
v0.7.4
- Fix unexpected behaviors of
keep_filteroption 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.
- Filter input is now correcly getting reset only when
- Fix cursor occasionally blinking in unexpected places.
- Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
- Add support for
handlbindings 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!
- Fix render issue https://github.com/mikaelmello/inquire/pull/228 when using console crate as the terminal backend. Thanks @maospr for reporting.
- 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. #176None: 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
Hiddendisplay 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.
- 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.
- Fixed typos in the code's comments (@kianmeng, @bheylin).
- Fixed issue where inquire, using termion, would crash when receiving piped inputs.
- Upgraded underlying
termioncrate from v1.5 to v2.0. - Upgraded underlying
bitflagsfrom v1 to v2, which affects theAttributesandKeyModifierscrates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information. - Removed
thiserrordependency in favor of implementingInquireErrorby 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_staticwithonce_cellasonce_cell::sync::Lazyis being standardized andlazy_staticis not actively maintained anymore. (@bheylin #158) - Added
fuzzy-matcheras a dependency for fuzzy filtering in Select and MultiSelect prompts #176
v0.7.3
- Fix cursor occasionally blinking in unexpected places.
- Pressing Ctrl+D now cancels the prompt. Thanks @mikecvet for the PR!
- Add support for
handlbindings 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!
- Fix render issue https://github.com/mikaelmello/inquire/pull/228 when using console crate as the terminal backend. Thanks @maospr for reporting.
- 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. #176None: 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
Hiddendisplay 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.
- 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.
- Fixed typos in the code's comments (@kianmeng, @bheylin).
- Fixed issue where inquire, using termion, would crash when receiving piped inputs.
- Upgraded underlying
termioncrate from v1.5 to v2.0. - Upgraded underlying
bitflagsfrom v1 to v2, which affects theAttributesandKeyModifierscrates. If you use any of bitflag's methods directly, you might be affected, refer to the bitflags changelog for more information. - Removed
thiserrordependency in favor of implementingInquireErrorby 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_staticwithonce_cellasonce_cell::sync::Lazyis being standardized andlazy_staticis not actively maintained anymore. (@bheylin #158) - Added
fuzzy-matcheras a dependency for fuzzy filtering in Select and MultiSelect prompts #176