@@ -14,13 +14,11 @@ use crate::{
14
14
app_state:: AppState ,
15
15
exercise:: Exercise ,
16
16
term:: { progress_bar, terminal_file_link, CountedWrite , MaxLenWriter } ,
17
- MAX_EXERCISE_NAME_LEN ,
18
17
} ;
19
18
20
19
use super :: scroll_state:: ScrollState ;
21
20
22
- // +1 for column padding.
23
- const SPACE : & [ u8 ] = & [ b' ' ; MAX_EXERCISE_NAME_LEN + 1 ] ;
21
+ const COL_SPACING : usize = 2 ;
24
22
25
23
fn next_ln ( stdout : & mut StdoutLock ) -> io:: Result < ( ) > {
26
24
stdout
@@ -41,7 +39,7 @@ pub struct ListState<'a> {
41
39
pub message : String ,
42
40
app_state : & ' a mut AppState ,
43
41
scroll_state : ScrollState ,
44
- name_col_width : usize ,
42
+ name_col_padding : Vec < u8 > ,
45
43
filter : Filter ,
46
44
term_width : u16 ,
47
45
term_height : u16 ,
@@ -61,6 +59,7 @@ impl<'a> ListState<'a> {
61
59
. map ( |exercise| exercise. name . len ( ) )
62
60
. max ( )
63
61
. map_or ( name_col_title_len, |max| max. max ( name_col_title_len) ) ;
62
+ let name_col_padding = vec ! [ b' ' ; name_col_width + COL_SPACING ] ;
64
63
65
64
let filter = Filter :: None ;
66
65
let n_rows_with_filter = app_state. exercises ( ) . len ( ) ;
@@ -73,7 +72,7 @@ impl<'a> ListState<'a> {
73
72
message : String :: with_capacity ( 128 ) ,
74
73
app_state,
75
74
scroll_state,
76
- name_col_width ,
75
+ name_col_padding ,
77
76
filter,
78
77
// Set by `set_term_size`
79
78
term_width : 0 ,
@@ -162,7 +161,7 @@ impl<'a> ListState<'a> {
162
161
writer. stdout . queue ( SetForegroundColor ( Color :: Reset ) ) ?;
163
162
164
163
writer. write_str ( exercise. name ) ?;
165
- writer. write_ascii ( & SPACE [ .. self . name_col_width + 2 - exercise. name . len ( ) ] ) ?;
164
+ writer. write_ascii ( & self . name_col_padding [ exercise. name . len ( ) .. ] ) ?;
166
165
167
166
terminal_file_link ( & mut writer, exercise. path , Color :: Blue ) ?;
168
167
@@ -184,7 +183,7 @@ impl<'a> ListState<'a> {
184
183
// Header
185
184
let mut writer = MaxLenWriter :: new ( stdout, self . term_width as usize ) ;
186
185
writer. write_ascii ( b" Current State Name" ) ?;
187
- writer. write_ascii ( & SPACE [ .. self . name_col_width - 2 ] ) ?;
186
+ writer. write_ascii ( & self . name_col_padding [ 2 .. ] ) ?;
188
187
writer. write_ascii ( b"Path" ) ?;
189
188
next_ln ( stdout) ?;
190
189
0 commit comments