Function init

Source
pub fn init() -> Result<()>
Expand description

Setup terminal for running State. Enter alternate screen, enable mouse capture, hide the cursor.

This function must be called before the run function.

Examples found in repository?
examples/hello_world.rs (line 12)
2fn main() -> std::io::Result<()> {
3    let content = r#"fn main() {
4    println!("Hello World!");
5}"#
6    .to_string();
7
8    let status_bar = StatusBar::new("Hello World program in rust".to_string());
9
10    let mut state = State::new(content, status_bar, CommandList::default())?;
11
12    pager_rs::init()?;
13
14    pager_rs::run(&mut state)?;
15
16    pager_rs::finish()?;
17
18    Ok(())
19}
More examples
Hide additional examples
examples/custom_bar_theme.rs (line 20)
3fn main() -> std::io::Result<()> {
4    let content = r#"fn main() {
5    println!("Hello World!");
6}"#
7    .to_string();
8
9    let theme = ContentStyle::new()
10        .with(Color::White)
11        .on(Color::Red)
12        .attribute(Attribute::Italic);
13    let status_bar = StatusBar::with_theme(
14        "Hello World program in rust with colored status bar".to_string(),
15        theme,
16    );
17
18    let mut state = State::new(content, status_bar, CommandList::default())?;
19
20    pager_rs::init()?;
21
22    pager_rs::run(&mut state)?;
23
24    pager_rs::finish()?;
25
26    Ok(())
27}
examples/read_file.rs (line 17)
3fn main() -> std::io::Result<()> {
4    let args: Vec<String> = env::args().collect();
5
6    if args.len() >= 2 {
7        let file_name = args[1].clone();
8
9        let mut file = File::open(file_name.clone())?;
10        let mut content = String::new();
11        file.read_to_string(&mut content)?;
12
13        let status_bar = StatusBar::new(file_name);
14
15        let mut state = State::new(content, status_bar, CommandList::default())?;
16
17        pager_rs::init()?;
18
19        pager_rs::run(&mut state)?;
20
21        pager_rs::finish()?;
22    } else {
23        eprintln!("Missing Filename");
24    }
25
26    Ok(())
27}
examples/custom_command.rs (line 50)
3fn main() -> std::io::Result<()> {
4    let content = r#"Lorem ipsum dolor sit amet, consectetur adipiscing
5elit. Pellentesque neque nulla, viverra ac sapien
6et, ultricies convallis lectus. Suspendisse mattis
7in urna quis efficitur. Quisque mollis vulputate ipsum,
8ut auctor risus luctus eu. Donec sagittis convallis erat
9eget imperdiet. Aliquam massa erat, venenatis eu massa at,
10dignissim tempus massa. Donec blandit augue et malesuada
11fermentum. In vehicula, nisl ut scelerisque sagittis,
12sapien elit gravida enim, eu feugiat magna arcu sed enim.
13Fusce accumsan sodales ipsum lobortis feugiat. Pellentesque
14quam lectus, molestie vitae nisi a, tempor mollis mauris.
15Maecenas in magna tempus, porta augue bibendum, feugiat nulla."#
16        .to_string();
17
18    let status_bar =
19        StatusBar::new("Press 'p' to open selected line on seperate instance".to_string());
20
21    let mut state = State::new(
22        content,
23        status_bar,
24        CommandList::combine(vec![
25            CommandList(vec![Command {
26                cmd: vec![CommandType::Key(KeyCode::Char('p'))],
27                desc: "Open selected line on seperate instance".to_string(),
28                func: &|state| {
29                    let commands =
30                        CommandList::combine(vec![CommandList::quit(), CommandList::navigation()]);
31
32                    let mut modal = State::new(
33                        state.content.lines().nth(state.pos.1).unwrap().to_string(),
34                        StatusBar::new("Quit (q)".to_string()),
35                        commands,
36                    )
37                    .unwrap();
38                    modal.show_line_numbers = false;
39                    run(&mut modal).unwrap();
40                    true
41                },
42            }]),
43            CommandList::quit(),
44            CommandList::navigation(),
45            CommandList::help(),
46        ]),
47    )?;
48    state.show_line_numbers = false;
49
50    pager_rs::init()?;
51
52    pager_rs::run(&mut state)?;
53
54    pager_rs::finish()?;
55
56    Ok(())
57}