@@ -33,6 +33,14 @@ enum LineChange {
3333
3434type LineChanges = HashMap<u32, LineChange>;
3535
36+const GRID_COLOR : u8 = 238;
37+
38+fn print_horizontal_line(grid_char: char, term_width: usize) {
39+ let prefix = format!("{}{}", "─".repeat(7), grid_char);
40+ let line = "─".repeat(term_width - prefix.len());
41+ println!("{}{}", Fixed(GRID_COLOR).paint(prefix), Fixed(GRID_COLOR).paint(line));
42+}
43+
3644fn print_file<P: AsRef<Path>>(
3745 theme: &Theme,
3846 filename: P,
@@ -43,21 +51,18 @@ fn print_file<P: AsRef<Path>>(
4351 let mut highlighter = HighlightFile::new(filename.as_ref().clone(), &ss, &theme)?;
4452
4553 let term = Term::stdout();
46− let (_height, width) = term.size();
54+ let (_, term_width) = term.size();
55+ let term_width = term_width as usize;
4756
48− let prefix = "───────┬";
49− let line = "─".repeat(width as usize - prefix.len());
50− println!("{}{}", Fixed(238).paint(prefix), Fixed(238).paint(line));
57+ print_horizontal_line('┬', term_width);
5158
5259 println!(
5360 " {} {}",
54− Fixed(238).paint("│"),
61+ Fixed(GRID_COLOR).paint("│"),
5562 White.bold().paint(filename.as_ref().to_string_lossy())
5663 );
5764
58− let prefix = "───────┼";
59− let line = "─".repeat(width as usize - prefix.len());
60− println!("{}{}", Fixed(238).paint(prefix), Fixed(238).paint(line));
65+ print_horizontal_line('┼', term_width);
6166
6267 for (idx, maybe_line) in highlighter.reader.lines().enumerate() {
6368 let line_nr = idx + 1;
@@ -80,14 +85,12 @@ fn print_file<P: AsRef<Path>>(
8085 "{} {} {} {}",
8186 Fixed(244).paint(format!("{:4}", line_nr)),
8287 line_change,
83− Fixed(238).paint("│"),
88+ Fixed(GRID_COLOR).paint("│"),
8489 as_24_bit_terminal_escaped(®ions, false)
8590 );
8691 }
8792
88− let prefix = "───────┴";
89− let line = "─".repeat(width as usize - prefix.len());
90− println!("{}{}", Fixed(238).paint(prefix), Fixed(238).paint(line));
93+ print_horizontal_line('┴', term_width);
9194
9295 Ok(())
9396}