summaryrefslogtreecommitdiff
path: root/src/list
diff options
context:
space:
mode:
Diffstat (limited to 'src/list')
-rw-r--r--src/list/state.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/list/state.rs b/src/list/state.rs
index e263b7e..51e4cfa 100644
--- a/src/list/state.rs
+++ b/src/list/state.rs
@@ -14,13 +14,11 @@ use crate::{
app_state::AppState,
exercise::Exercise,
term::{progress_bar, terminal_file_link, CountedWrite, MaxLenWriter},
- MAX_EXERCISE_NAME_LEN,
};
use super::scroll_state::ScrollState;
-// +1 for column padding.
-const SPACE: &[u8] = &[b' '; MAX_EXERCISE_NAME_LEN + 1];
+const COL_SPACING: usize = 2;
fn next_ln(stdout: &mut StdoutLock) -> io::Result<()> {
stdout
@@ -41,7 +39,7 @@ pub struct ListState<'a> {
pub message: String,
app_state: &'a mut AppState,
scroll_state: ScrollState,
- name_col_width: usize,
+ name_col_padding: Vec<u8>,
filter: Filter,
term_width: u16,
term_height: u16,
@@ -61,6 +59,7 @@ impl<'a> ListState<'a> {
.map(|exercise| exercise.name.len())
.max()
.map_or(name_col_title_len, |max| max.max(name_col_title_len));
+ let name_col_padding = vec![b' '; name_col_width + COL_SPACING];
let filter = Filter::None;
let n_rows_with_filter = app_state.exercises().len();
@@ -73,7 +72,7 @@ impl<'a> ListState<'a> {
message: String::with_capacity(128),
app_state,
scroll_state,
- name_col_width,
+ name_col_padding,
filter,
// Set by `set_term_size`
term_width: 0,
@@ -162,7 +161,7 @@ impl<'a> ListState<'a> {
writer.stdout.queue(SetForegroundColor(Color::Reset))?;
writer.write_str(exercise.name)?;
- writer.write_ascii(&SPACE[..self.name_col_width + 2 - exercise.name.len()])?;
+ writer.write_ascii(&self.name_col_padding[exercise.name.len()..])?;
terminal_file_link(&mut writer, exercise.path, Color::Blue)?;
@@ -184,7 +183,7 @@ impl<'a> ListState<'a> {
// Header
let mut writer = MaxLenWriter::new(stdout, self.term_width as usize);
writer.write_ascii(b" Current State Name")?;
- writer.write_ascii(&SPACE[..self.name_col_width - 2])?;
+ writer.write_ascii(&self.name_col_padding[2..])?;
writer.write_ascii(b"Path")?;
next_ln(stdout)?;