diff options
| author | Daniel Jankowski <daniel.jankowski@rub.de> | 2024-05-31 11:07:57 +0200 |
|---|---|---|
| committer | Daniel Jankowski <daniel.jankowski@rub.de> | 2024-05-31 11:07:57 +0200 |
| commit | ec98a29dbc88fcd1f42a7b91c9231da8d8a9ac77 (patch) | |
| tree | f019f95eba11e4a95460be57b3cce9b3f7037bf0 | |
| parent | chore: update cargo deps (diff) | |
| download | sl0pstatus-ec98a29dbc88fcd1f42a7b91c9231da8d8a9ac77.tar.gz sl0pstatus-ec98a29dbc88fcd1f42a7b91c9231da8d8a9ac77.tar.xz sl0pstatus-ec98a29dbc88fcd1f42a7b91c9231da8d8a9ac77.zip | |
feat: toggle hide format overlength
| -rw-r--r-- | plugin-dev-workspace.kdl | 11 | ||||
| -rw-r--r-- | src/config.rs | 19 |
2 files changed, 21 insertions, 9 deletions
diff --git a/plugin-dev-workspace.kdl b/plugin-dev-workspace.kdl index 7f754cb..27333eb 100644 --- a/plugin-dev-workspace.kdl +++ b/plugin-dev-workspace.kdl @@ -5,11 +5,12 @@ layout { pane size=2 borderless=true { plugin location="file:target/wasm32-wasi/debug/zjstatus.wasm" { - format_left "{mode}#[fg=#89B4FA,bg=#181825,bold] {session} {tabs}" - format_center "{command_0} {command_1} {command_git_branch} {command_3}" - format_right "{tabs}{notifications}{swap_layout}{datetime}" - format_space "#[bg=#181825]" - format_precedence "lrc" + format_left "{mode}#[fg=#89B4FA,bg=#181825,bold] {session} {tabs}" + format_center "{command_0} {command_1} {command_git_branch} {command_3}" + format_right "{tabs}{notifications}{swap_layout}{datetime}" + format_space "#[bg=#181825]" + format_precedence "lrc" + format_hide_on_overlength "false" notification_format_unread "#[fg=#89B4FA,bg=#181825,blink] #[fg=#89B4FA,bg=#181825] {message} " notification_format_no_notifications "#[fg=#89B4FA,bg=#181825,dim] " diff --git a/src/config.rs b/src/config.rs index 9c7cbd5..f1eb111 100644 --- a/src/config.rs +++ b/src/config.rs @@ -79,6 +79,7 @@ pub struct ModuleConfig { pub hide_frame_for_single_pane: bool, pub border: BorderConfig, pub format_precedence: Vec<Part>, + pub hide_on_overlength: bool, } impl ModuleConfig { @@ -125,6 +126,11 @@ impl ModuleConfig { None => vec![Part::Left, Part::Center, Part::Right], }; + let hide_on_overlength = match config.get("format_hide_on_overlength") { + Some(opt) => opt == "true", + None => false, + }; + let border_config = match parse_border_config(config.clone()) { Some(bc) => bc, None => BorderConfig::default(), @@ -141,6 +147,7 @@ impl ModuleConfig { hide_frame_for_single_pane, border: border_config, format_precedence, + hide_on_overlength, }) } @@ -189,8 +196,10 @@ impl ModuleConfig { ) }); - let (output_left, output_center, output_right) = - self.trim_output(&output_left, &output_center, &output_right, state.cols); + let (output_left, output_center, output_right) = match self.hide_on_overlength { + true => self.trim_output(&output_left, &output_center, &output_right, state.cols), + false => (output_left, output_center, output_right), + }; let mut offset = console::measure_text_width(&output_left); @@ -318,8 +327,10 @@ impl ModuleConfig { ) }); - let (output_left, output_center, output_right) = - self.trim_output(&output_left, &output_center, &output_right, state.cols); + let (output_left, output_center, output_right) = match self.hide_on_overlength { + true => self.trim_output(&output_left, &output_center, &output_right, state.cols), + false => (output_left, output_center, output_right), + }; if self.border.enabled { let mut border_top = "".to_owned(); |
