fpicker 0.1.4

ratatui-file-picker allows you to select multiple files from a tree and add their content or paths to clipboard. It also returns the absolute paths of selected files on exit.
Documentation

Build #3353680 2026-05-22 15:16:56

# rustc version rustc 1.97.0-nightly (e96c36b6f 2026-05-21)

# docs.rs version docsrs 0.0.0 (e50152ed411bb913753b1dfd203f22cb8711f097 2026-05-17 )

# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "6d4313718309067193685b8371df600dd9f9f48d7898c24f1d473ec9ed96cea9" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260521-1.97.0-nightly-e96c36b6f\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu" "-Zunstable-options" "-Zrustdoc-scrape-examples", kill_on_drop: false }` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/widget.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | let mut style = theme.highlight_dir_style.clone(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/file_explorer.rs:265:5 [INFO] [stderr] | [INFO] [stderr] 265 | pub fn selected_files(&self) -> &Vec<File> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | #![warn(missing_docs)] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/file_explorer.rs:620:5 [INFO] [stderr] | [INFO] [stderr] 620 | pub fn set_selected(&mut self, selected: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/file_explorer.rs:624:5 [INFO] [stderr] | [INFO] [stderr] 624 | pub const fn is_selected(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a variant [INFO] [stderr] --> src/input/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | None, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Style::add_modifier` that must be used [INFO] [stderr] --> src/widget.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `add_modifier` returns the modified style without modifying the original [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 64 | let _ = style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Style::fg` that must be used [INFO] [stderr] --> src/widget.rs:65:17 [INFO] [stderr] | [INFO] [stderr] 65 | style.fg(Color::Yellow); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `fg` returns the modified style without modifying the original [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 65 | let _ = style.fg(Color::Yellow); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Style::add_modifier` that must be used [INFO] [stderr] --> src/widget.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `add_modifier` returns the modified style without modifying the original [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 70 | let _ = style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `Style::add_modifier` that must be used [INFO] [stderr] --> src/widget.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `add_modifier` returns the modified style without modifying the original [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 77 | let _ = style.add_modifier(ratatui::style::Modifier::BOLD); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/widget.rs:429:22 [INFO] [stderr] | [INFO] [stderr] 429 | pub fn title_top(&self, file_explorer: &FileExplorer) -> Vec<Line> { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 429 | pub fn title_top(&self, file_explorer: &FileExplorer) -> Vec<Line<'_>> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/widget.rs:438:25 [INFO] [stderr] | [INFO] [stderr] 438 | pub fn title_bottom(&self, file_explorer: &FileExplorer) -> Vec<Line> { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 438 | pub fn title_bottom(&self, file_explorer: &FileExplorer) -> Vec<Line<'_>> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `fpicker` (lib) generated 11 warnings (run `cargo fix --lib -p fpicker` to apply 3 suggestions) [INFO] [stderr] Scraping fpicker v0.1.4 (/opt/rustwide/workdir) [INFO] [stderr] Documenting fpicker v0.1.4 (/opt/rustwide/workdir) [INFO] [stderr] warning: `fpicker` (lib doc) generated 4 warnings (4 duplicates) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.95s [INFO] [stderr] Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/fpicker/index.html [INFO] running `Command { std: "docker" "inspect" "6d4313718309067193685b8371df600dd9f9f48d7898c24f1d473ec9ed96cea9", kill_on_drop: false }`