#cargo-subcommand #cargo #tui #fuzzy-matching #developer-tools

app cargo-select

Cargo 子命令,可轻松运行当前 Rust 项目的目标、示例或测试

6 个版本

0.2.3 2022年8月24日
0.2.2 2022年7月13日
0.1.1 2022年6月18日

#440Cargo 插件

每月 27 次下载

GPL-2.0 许可证

25KB
552

cargo-select

Cargo 子命令,可轻松运行当前 Rust 项目的目标、示例或测试

在当前 Rust 项目中对目标、示例或测试进行模糊匹配。 asciicast

cargo-select 0.2.0
LoipesMas
Fuzzy-match targets/examples

USAGE:
    cargo select [OPTIONS] [ARGS]

ARGS:
    <CARGO_COMMAND>    Cargo command to run with selected target (e.g. "run").
    <PATTERN>          Pattern to fuzzy-match targets with. Omit for interactive mode.
    <CARGO_ARGS>...    Additional arguments to pass to cargo.

OPTIONS:
    -h, --help       Print help information
        --no-skip    Run all tests that match selected test (i.e. dont skip names that are
                     supersets)(tests only)
    -V, --version    Print version information

cargo select run 特殊处理为 cargo run,带有 --package NAME--example NAME

cargo select test 特殊处理为匹配测试名称(从源文件推断得出)并使用 cargo test 运行。
替代方案

  • 您可以直接执行 cargo test NAME,但它无法按名称查找测试,并且与工作空间不兼容
  • 您也可以执行类似于 cargo test -- --list | fzf | sed "s/: .*//" | xargs cargo test -- --exact 的命令,但需要编译测试,这可能会在某些项目上(特别是包含多个工作空间的项目)消耗大量时间和磁盘空间。并且它仍然有一些限制。

安装

从 crates.io

cargoinstall cargo-select

从源代码

git clone https://github.com/LoipesMas/cargo-select.git
cd cargo-select
cargo install --path .

依赖项

~7–18MB
~195K SLoC