#cargo-subcommand #cargo #tui #subcommand #plugin

app cargo-selector

Cargo subcommand to select and execute binary/example targets

10 releases (breaking)

new 0.8.0 Feb 22, 2025
0.6.0 Dec 13, 2024
0.4.1 Aug 8, 2024
0.4.0 Apr 25, 2024

#192 in Cargo plugins

Download history 6/week @ 2024-11-02 3/week @ 2024-11-16 4/week @ 2024-11-23 11/week @ 2024-11-30 294/week @ 2024-12-07 62/week @ 2024-12-14 1/week @ 2024-12-21 147/week @ 2025-01-18 132/week @ 2025-01-25 51/week @ 2025-02-01 5/week @ 2025-02-08

335 downloads per month

MIT license

25KB
621 lines

cargo-selector

Crate Status

Cargo subcommand to select and execute binary/example targets

(This demo uses Ratatui as an example!)

Installation

$ cargo install cargo-selector

AUR

$ paru -S cargo-selector

Usage

Usage: cargo selector [OPTIONS]

Options:
  -i, --inline                   Display list inline
  -n, --inline-list-size <SIZE>  List size [default: 10]
  -k, --kind <NAME>              Target kind [possible values: bin, example]
  -t, --match-type <TYPE>        Match type [possible values: substring, fuzzy]
  -h, --help                     Print help
  -V, --version                  Print version

Run the command in the cargo project directory:

$ cargo selector

Then, target list will be displayed, and you can execute the following command by selecting it.

# if the target is bin
$ cargo run --bin xyz [--features "foo bar"]

# if the target is example
$ cargo run --example xyz [--features "foo bar"]

By switching the action, you can also run only the build.

Keybindings

Key Description
Down Ctrl+n cursor down
Up Ctrl+p cursor up
Enter execute cargo run --bin/example <selected>
Tab switch actions
Esc Ctrl+c quit

Config

If the CARGO_SELECTOR_CONFIG environment variable specifies the path to the config file, the config will be loaded.

The config file uses the following format:

# Sets the default match type. If argument `-t` or `--match-type` is specified, it will be overridden.
# type: enum ("substring" | "fuzzy")
match_type = "substring"

# Sets the display colors.
# Colors can be set in one of the following formats:
# - ANSI color name
#   - "red", "bright-blue"
# - 8-bit color (256-color) index values
#   - "34", "128", "255"
# - 24-bit true color hex codes
#   - "#abcdef"
# type: string
[color]
bg = "reset"
action_run_bg = "green"
action_run_fg = "black"
action_build_bg = "blue"
action_build_fg = "black"
input_fg = "reset"
numbers_fg = "darkgrey"
kind_fg = "blue"
name_fg = "white"
name_match_fg = "red"
path_fg = "darkgrey"
features_fg = "darkgrey"
selected_bg = "yellow"

License

MIT

Dependencies

~8–18MB
~263K SLoC