mirror of
https://github.com/lotabout/skim.git
synced 2026-09-10 07:16:23 -04:00
34 lines
876 B
Rust
34 lines
876 B
Rust
//! Demonstrates selecting ANSI-colored command output.
|
|
|
|
extern crate skim;
|
|
use skim::prelude::*;
|
|
use skim::reader::CommandCollector;
|
|
|
|
fn main() {
|
|
env_logger::init();
|
|
|
|
let glogm = "git log --oneline --color=always | head -n10";
|
|
|
|
let options = SkimOptionsBuilder::default()
|
|
.height("50%")
|
|
.cmd(glogm)
|
|
.preview("echo {}")
|
|
.multi(true)
|
|
.reverse(true)
|
|
.cmd_collector(Rc::new(RefCell::new(SkimItemReader::new(
|
|
SkimItemReaderOption::default().ansi(true),
|
|
))) as Rc<RefCell<dyn CommandCollector>>)
|
|
.build()
|
|
.unwrap();
|
|
|
|
log::debug!("Options: ansi {}", options.ansi);
|
|
|
|
let selected_items = Skim::run_with(options, None)
|
|
.map(|out| out.selected_items)
|
|
.unwrap_or_default();
|
|
|
|
for item in &selected_items {
|
|
println!("selected: {}", item.output());
|
|
}
|
|
}
|