2// backend::TestBackend,
5// style::{Color, Style},
7// widgets::{Block, Borders, List, ListItem, ListState},
12// fn widgets_list_should_highlight_the_selected_item() {
13// let backend = TestBackend::new(10, 3);
14// let mut terminal = Terminal::new(backend).unwrap();
15// let mut state = ListState::default();
16// state.select(Some(1));
19// let size = f.size();
21// ListItem::new("Item 1"),
22// ListItem::new("Item 2"),
23// ListItem::new("Item 3"),
25// let list = List::new(items)
26// .highlight_style(Style::default().bg(Color::Yellow))
27// .highlight_symbol(">> ");
28// f.render_stateful_widget(list, size, &mut state);
31// let mut expected = Buffer::with_lines(vec![" Item 1 ", ">> Item 2 ", " Item 3 "]);
33// expected.get_mut(x, 1).set_bg(Color::Yellow);
35// terminal.backend().assert_buffer(&expected);
39// fn widgets_list_should_truncate_items() {
40// let backend = TestBackend::new(10, 2);
41// let mut terminal = Terminal::new(backend).unwrap();
43// struct TruncateTestCase<'a> {
44// selected: Option<usize>,
45// items: Vec<ListItem<'a>>,
50// // An item is selected
54// ListItem::new("A very long line"),
55// ListItem::new("A very long line"),
57// expected: Buffer::with_lines(vec![
58// format!(">> A ve{} ", symbols::line::VERTICAL),
59// format!(" A ve{} ", symbols::line::VERTICAL),
62// // No item is selected
66// ListItem::new("A very long line"),
67// ListItem::new("A very long line"),
69// expected: Buffer::with_lines(vec![
70// format!("A very {} ", symbols::line::VERTICAL),
71// format!("A very {} ", symbols::line::VERTICAL),
76// let mut state = ListState::default();
77// state.select(case.selected);
80// let list = List::new(case.items.clone())
81// .block(Block::default().borders(Borders::RIGHT))
82// .highlight_symbol(">> ");
83// f.render_stateful_widget(list, Rect::new(0, 0, 8, 2), &mut state);
86// terminal.backend().assert_buffer(&case.expected);
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list