6 releases (3 breaking)

0.4.1 Sep 7, 2024
0.4.0 Sep 1, 2024
0.3.0 Aug 31, 2024
0.2.1 Aug 22, 2024
0.1.0 Aug 20, 2024

#289 in Command-line interface

45 downloads per month
Used in autobib

MIT/Apache

36KB
632 lines

Current crates.io release Documentation

nucleo-picker

Yet another fuzzy picker library. This library provides a TUI for the nucleo crate, but otherwise attempts to be a relatively thin wrapper.

As a result, you get the great features of nucleo for free™. This crate tries not to interfere with the API choices made by nucleo.

See the examples directory for implementation examples, or try it out with cargo run --example blocking.

Currently, we only directly load two dependencies:

This crate mainly exists as a result of the author's annoyance with pretty much every fuzzy picker TUI in the rust ecosystem.

  • skim's Arc<dyn SkimItem> is very inconvenient since the original item cannot be recovered from the match. skim also contains a large amount of dependency baggage.
  • fuzzypicker is based on skim and inherits skim's problems.
  • nucleo-ui only has a blocking API and only supports matching on String.
  • fuzzy-select only has a blocking API.
  • dialoguer FuzzySelect only has a blocking API and only supports matching on String. The terminal handling also has a few strange bugs.

Disclaimer

The feature set of this library is quite minimal (by design) but may be expanded in the future. There are a currently a few known problems which have not been addressed (see the issues page on GitHub for a list).

This crate is not affiliated with the authors of nucleo, but if they have comments / complaints I am very glad to hear them!

Dependencies

~4–13MB
~167K SLoC