diff --git a/default-plugins/compact-bar/src/main.rs b/default-plugins/compact-bar/src/main.rs index 505dc926..c6ce9bbc 100644 --- a/default-plugins/compact-bar/src/main.rs +++ b/default-plugins/compact-bar/src/main.rs @@ -22,7 +22,7 @@ struct State { active_tab_idx: usize, mode_info: ModeInfo, mouse_click_pos: usize, - should_render: bool, + should_change_tab: bool, } static ARROW_SEPARATOR: &str = ""; @@ -39,13 +39,23 @@ impl ZellijPlugin for State { ]); } - fn update(&mut self, event: Event) { + fn update(&mut self, event: Event) -> bool { + let mut should_render = false; match event { - Event::ModeUpdate(mode_info) => self.mode_info = mode_info, + Event::ModeUpdate(mode_info) => { + if self.mode_info != mode_info { + should_render = true; + } + self.mode_info = mode_info + }, Event::TabUpdate(tabs) => { if let Some(active_tab_index) = tabs.iter().position(|t| t.active) { // tabs are indexed starting from 1 so we need to add 1 - self.active_tab_idx = active_tab_index + 1; + let active_tab_idx = active_tab_index + 1; + if self.active_tab_idx != active_tab_idx || self.tabs != tabs { + should_render = true; + } + self.active_tab_idx = active_tab_idx; self.tabs = tabs; } else { eprintln!("Could not find active tab."); @@ -53,13 +63,18 @@ impl ZellijPlugin for State { }, Event::Mouse(me) => match me { Mouse::LeftClick(_, col) => { + if self.mouse_click_pos != col { + should_render = true; + self.should_change_tab = true; + } self.mouse_click_pos = col; - self.should_render = true; }, Mouse::ScrollUp(_) => { + should_render = true; switch_tab_to(min(self.active_tab_idx + 1, self.tabs.len()) as u32); }, Mouse::ScrollDown(_) => { + should_render = true; switch_tab_to(max(self.active_tab_idx.saturating_sub(1), 1) as u32); }, _ => {}, @@ -67,7 +82,8 @@ impl ZellijPlugin for State { _ => { eprintln!("Got unrecognized event: {:?}", event); }, - } + }; + should_render } fn render(&mut self, _rows: usize, cols: usize) { @@ -111,7 +127,7 @@ impl ZellijPlugin for State { for bar_part in tab_line { s = format!("{}{}", s, &bar_part.part); - if self.should_render + if self.should_change_tab && self.mouse_click_pos >= len_cnt && self.mouse_click_pos < len_cnt + bar_part.len && bar_part.tab_index.is_some() @@ -134,6 +150,6 @@ impl ZellijPlugin for State { print!("{}\u{1b}[48;5;{}m\u{1b}[0K", s, color); }, } - self.should_render = false; + self.should_change_tab = false; } } diff --git a/default-plugins/status-bar/src/main.rs b/default-plugins/status-bar/src/main.rs index 25e31d2f..97f2bd2c 100644 --- a/default-plugins/status-bar/src/main.rs +++ b/default-plugins/status-bar/src/main.rs @@ -182,26 +182,50 @@ impl ZellijPlugin for State { ]); } - fn update(&mut self, event: Event) { + fn update(&mut self, event: Event) -> bool { + let mut should_render = false; match event { Event::ModeUpdate(mode_info) => { + if self.mode_info != mode_info { + should_render = true; + } self.mode_info = mode_info; }, Event::TabUpdate(tabs) => { + if self.tabs != tabs { + should_render = true; + } self.tabs = tabs; }, Event::CopyToClipboard(copy_destination) => { + match self.text_copy_destination { + Some(text_copy_destination) => { + if text_copy_destination != copy_destination { + should_render = true; + } + }, + None => { + should_render = true; + }, + } self.text_copy_destination = Some(copy_destination); }, Event::SystemClipboardFailure => { + should_render = true; self.display_system_clipboard_failure = true; }, Event::InputReceived => { + if self.text_copy_destination.is_some() + || self.display_system_clipboard_failure == true + { + should_render = true; + } self.text_copy_destination = None; self.display_system_clipboard_failure = false; }, _ => {}, - } + }; + should_render } fn render(&mut self, rows: usize, cols: usize) { diff --git a/default-plugins/strider/src/main.rs b/default-plugins/strider/src/main.rs index fcac6ec6..6868c670 100644 --- a/default-plugins/strider/src/main.rs +++ b/default-plugins/strider/src/main.rs @@ -13,7 +13,8 @@ impl ZellijPlugin for State { subscribe(&[EventType::Key, EventType::Mouse]); } - fn update(&mut self, event: Event) { + fn update(&mut self, event: Event) -> bool { + let mut should_render = false; let prev_event = if self.ev_history.len() == 2 { self.ev_history.pop_front() } else { @@ -23,13 +24,22 @@ impl ZellijPlugin for State { match event { Event::Key(key) => match key { Key::Up | Key::Char('k') => { + let currently_selected = self.selected(); *self.selected_mut() = self.selected().saturating_sub(1); + if currently_selected != self.selected() { + should_render = true; + } }, Key::Down | Key::Char('j') => { + let currently_selected = self.selected(); let next = self.selected().saturating_add(1); *self.selected_mut() = min(self.files.len().saturating_sub(1), next); + if currently_selected != self.selected() { + should_render = true; + } }, Key::Right | Key::Char('\n') | Key::Char('l') if !self.files.is_empty() => { + should_render = true; self.traverse_dir_or_open_file(); self.ev_history.clear(); }, @@ -39,11 +49,13 @@ impl ZellijPlugin for State { // the reason this is a hard-coded number (2) and not "== ROOT" // or some such is that there are certain cases in which self.path // is empty and this will work then too + should_render = true; self.path.pop(); refresh_directory(self); } }, Key::Char('.') => { + should_render = true; self.toggle_hidden_files(); refresh_directory(self); }, @@ -52,15 +64,23 @@ impl ZellijPlugin for State { }, Event::Mouse(mouse_event) => match mouse_event { Mouse::ScrollDown(_) => { + let currently_selected = self.selected(); let next = self.selected().saturating_add(1); *self.selected_mut() = min(self.files.len().saturating_sub(1), next); + if currently_selected != self.selected() { + should_render = true; + } }, Mouse::ScrollUp(_) => { + let currently_selected = self.selected(); *self.selected_mut() = self.selected().saturating_sub(1); + if currently_selected != self.selected() { + should_render = true; + } }, Mouse::Release(line, _) => { if line < 0 { - return; + return should_render; } let mut should_select = true; if let Some((Event::Mouse(Mouse::Release(prev_line, _)), t)) = prev_event { @@ -70,10 +90,15 @@ impl ZellijPlugin for State { self.traverse_dir_or_open_file(); self.ev_history.clear(); should_select = false; + should_render = true; } } if should_select && self.scroll() + (line as usize) < self.files.len() { + let currently_selected = self.selected(); *self.selected_mut() = self.scroll() + (line as usize); + if currently_selected != self.selected() { + should_render = true; + } } }, _ => {}, @@ -81,7 +106,8 @@ impl ZellijPlugin for State { _ => { dbg!("Unknown event {:?}", event); }, - } + }; + should_render } fn render(&mut self, rows: usize, cols: usize) { diff --git a/default-plugins/tab-bar/src/main.rs b/default-plugins/tab-bar/src/main.rs index f0310261..6f0456a8 100644 --- a/default-plugins/tab-bar/src/main.rs +++ b/default-plugins/tab-bar/src/main.rs @@ -22,7 +22,7 @@ struct State { active_tab_idx: usize, mode_info: ModeInfo, mouse_click_pos: usize, - should_render: bool, + should_change_tab: bool, } static ARROW_SEPARATOR: &str = ""; @@ -39,13 +39,23 @@ impl ZellijPlugin for State { ]); } - fn update(&mut self, event: Event) { + fn update(&mut self, event: Event) -> bool { + let mut should_render = false; match event { - Event::ModeUpdate(mode_info) => self.mode_info = mode_info, + Event::ModeUpdate(mode_info) => { + if self.mode_info != mode_info { + should_render = true; + } + self.mode_info = mode_info; + }, Event::TabUpdate(tabs) => { if let Some(active_tab_index) = tabs.iter().position(|t| t.active) { // tabs are indexed starting from 1 so we need to add 1 - self.active_tab_idx = active_tab_index + 1; + let active_tab_idx = active_tab_index + 1; + if self.active_tab_idx != active_tab_idx || self.tabs != tabs { + should_render = true; + } + self.active_tab_idx = active_tab_idx; self.tabs = tabs; } else { eprintln!("Could not find active tab."); @@ -53,13 +63,18 @@ impl ZellijPlugin for State { }, Event::Mouse(me) => match me { Mouse::LeftClick(_, col) => { + if self.mouse_click_pos != col { + should_render = true; + self.should_change_tab = true; + } self.mouse_click_pos = col; - self.should_render = true; }, Mouse::ScrollUp(_) => { + should_render = true; switch_tab_to(min(self.active_tab_idx + 1, self.tabs.len()) as u32); }, Mouse::ScrollDown(_) => { + should_render = true; switch_tab_to(max(self.active_tab_idx.saturating_sub(1), 1) as u32); }, _ => {}, @@ -68,6 +83,7 @@ impl ZellijPlugin for State { eprintln!("Got unrecognized event: {:?}", event); }, } + should_render } fn render(&mut self, _rows: usize, cols: usize) { @@ -110,7 +126,7 @@ impl ZellijPlugin for State { for bar_part in tab_line { s = format!("{}{}", s, &bar_part.part); - if self.should_render + if self.should_change_tab && self.mouse_click_pos >= len_cnt && self.mouse_click_pos < len_cnt + bar_part.len && bar_part.tab_index.is_some() @@ -133,6 +149,6 @@ impl ZellijPlugin for State { print!("{}\u{1b}[48;5;{}m\u{1b}[0K", s, color); }, } - self.should_render = false; + self.should_change_tab = false; } } diff --git a/zellij-server/src/output/mod.rs b/zellij-server/src/output/mod.rs index f40c8514..51a21f7b 100644 --- a/zellij-server/src/output/mod.rs +++ b/zellij-server/src/output/mod.rs @@ -396,6 +396,12 @@ impl Output { } Ok(serialized_render_instructions) } + pub fn is_dirty(&self) -> bool { + !self.pre_vte_instructions.is_empty() + || !self.post_vte_instructions.is_empty() + || self.client_character_chunks.values().any(|c| !c.is_empty()) + || self.sixel_chunks.values().any(|c| !c.is_empty()) + } } // this struct represents the geometry of a group of floating panes diff --git a/zellij-server/src/panes/grid.rs b/zellij-server/src/panes/grid.rs index 0bc2b767..b3ee85a4 100644 --- a/zellij-server/src/panes/grid.rs +++ b/zellij-server/src/panes/grid.rs @@ -1081,11 +1081,14 @@ impl Grid { pub fn reset_viewport(&mut self) { let max_lines_to_scroll = *SCROLL_BUFFER_SIZE.get().unwrap() * 2; // while not very elegant, this can prevent minor bugs from becoming showstoppers by sticking the whole app display in an endless loop let mut lines_scrolled = 0; + let should_clear_output_buffer = self.is_scrolled; while self.is_scrolled && lines_scrolled < max_lines_to_scroll { self.scroll_down_one_line(); lines_scrolled += 1; } - self.output_buffer.update_all_lines(); + if should_clear_output_buffer { + self.output_buffer.update_all_lines(); + } } pub fn rotate_scroll_region_up(&mut self, count: usize) { if let Some((scroll_region_top, scroll_region_bottom)) = self diff --git a/zellij-server/src/panes/tiled_panes/mod.rs b/zellij-server/src/panes/tiled_panes/mod.rs index cc4e95e6..96fd2f67 100644 --- a/zellij-server/src/panes/tiled_panes/mod.rs +++ b/zellij-server/src/panes/tiled_panes/mod.rs @@ -65,6 +65,8 @@ pub struct TiledPanes { fullscreen_is_active: bool, os_api: Box, senders: ThreadSenders, + window_title: Option, + client_id_to_boundaries: HashMap, } impl TiledPanes { @@ -100,6 +102,8 @@ impl TiledPanes { fullscreen_is_active: false, os_api, senders, + window_title: None, + client_id_to_boundaries: HashMap::new(), } } pub fn add_pane_with_existing_geom(&mut self, pane_id: PaneId, mut pane: Box) { @@ -264,6 +268,7 @@ impl TiledPanes { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } pub fn can_split_pane_horizontally(&mut self, client_id: ClientId) -> bool { if let Some(active_pane_id) = &self.active_panes.get(&client_id) { @@ -338,9 +343,11 @@ impl TiledPanes { .insert(client_id, pane_id, &mut self.panes); } } + self.reset_boundaries(); } pub fn clear_active_panes(&mut self) { self.active_panes.clear(&mut self.panes); + self.reset_boundaries(); } pub fn first_active_pane_id(&self) -> Option { self.connected_clients @@ -373,6 +380,7 @@ impl TiledPanes { pane.set_should_render_boundaries(true); pane.render_full_viewport(); } + self.reset_boundaries(); } pub fn has_active_panes(&self) -> bool { !self.active_panes.is_empty() @@ -435,7 +443,11 @@ impl TiledPanes { self.session_is_mirrored, ); } - pane_contents_and_ui.render_terminal_title_if_needed(*client_id, client_mode); + pane_contents_and_ui.render_terminal_title_if_needed( + *client_id, + client_mode, + &mut self.window_title, + ); // this is done for panes that don't have their own cursor (eg. panes of // another user) pane_contents_and_ui @@ -450,14 +462,13 @@ impl TiledPanes { } } // render boundaries if needed - for (client_id, boundaries) in &mut client_id_to_boundaries { - // TODO: add some conditional rendering here so this isn't rendered for every character + for (client_id, boundaries) in client_id_to_boundaries { + let boundaries_to_render = boundaries + .render(self.client_id_to_boundaries.get(&client_id)) + .with_context(err_context)?; + self.client_id_to_boundaries.insert(client_id, boundaries); output - .add_character_chunks_to_client( - *client_id, - boundaries.render().with_context(err_context)?, - None, - ) + .add_character_chunks_to_client(client_id, boundaries_to_render, None) .with_context(err_context)?; } Ok(()) @@ -517,6 +528,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn resize_active_pane_right(&mut self, client_id: ClientId) { @@ -531,6 +543,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn resize_active_pane_up(&mut self, client_id: ClientId) { @@ -545,6 +558,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn resize_active_pane_down(&mut self, client_id: ClientId) { @@ -559,6 +573,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn resize_active_pane_increase(&mut self, client_id: ClientId) { @@ -573,6 +588,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn resize_active_pane_decrease(&mut self, client_id: ClientId) { @@ -587,6 +603,7 @@ impl TiledPanes { for pane in self.panes.values_mut() { resize_pty!(pane, self.os_api, self.senders).unwrap(); } + self.reset_boundaries(); } } pub fn focus_next_pane(&mut self, client_id: ClientId) { @@ -605,6 +622,7 @@ impl TiledPanes { .insert(client_id, next_active_pane_id, &mut self.panes); } self.set_pane_active_at(next_active_pane_id); + self.reset_boundaries(); } pub fn focus_previous_pane(&mut self, client_id: ClientId) { let connected_clients: Vec = @@ -622,6 +640,7 @@ impl TiledPanes { .insert(client_id, next_active_pane_id, &mut self.panes); } self.set_pane_active_at(next_active_pane_id); + self.reset_boundaries(); } fn set_pane_active_at(&mut self, pane_id: PaneId) { if let Some(pane) = self.get_pane_mut(pane_id) { @@ -999,6 +1018,7 @@ impl TiledPanes { } } pub fn extract_pane(&mut self, pane_id: PaneId) -> Option> { + self.reset_boundaries(); self.panes.remove(&pane_id) } pub fn remove_pane(&mut self, pane_id: PaneId) -> Option> { @@ -1174,6 +1194,9 @@ impl TiledPanes { .insert(client_id, to_pane_id, &mut self.panes); } } + fn reset_boundaries(&mut self) { + self.client_id_to_boundaries.clear(); + } } #[allow(clippy::borrowed_box)] diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index 0c03955a..40bcc964 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -768,11 +768,15 @@ impl Screen { for tab_index in tabs_to_close { self.close_tab_at_index(tab_index).context(err_context)?; } - let serialized_output = output.serialize().context(err_context)?; - self.bus - .senders - .send_to_server(ServerInstruction::Render(Some(serialized_output))) - .context(err_context) + if output.is_dirty() { + let serialized_output = output.serialize().context(err_context)?; + self.bus + .senders + .send_to_server(ServerInstruction::Render(Some(serialized_output))) + .context(err_context) + } else { + Ok(()) + } } /// Returns a mutable reference to this [`Screen`]'s tabs. diff --git a/zellij-server/src/tab/mod.rs b/zellij-server/src/tab/mod.rs index 374fe1ce..e98b4614 100644 --- a/zellij-server/src/tab/mod.rs +++ b/zellij-server/src/tab/mod.rs @@ -112,6 +112,9 @@ pub(crate) struct Tab { terminal_emulator_colors: Rc>, terminal_emulator_color_codes: Rc>>, pids_waiting_resize: HashSet, // u32 is the terminal_id + cursor_positions_and_shape: HashMap, // (x_position, + // y_position, + // cursor_shape_csi) } #[derive(Clone, Debug, Default, Serialize, Deserialize)] @@ -485,6 +488,7 @@ impl Tab { terminal_emulator_colors, terminal_emulator_color_codes, pids_waiting_resize: HashSet::new(), + cursor_positions_and_shape: HashMap::new(), } } @@ -1427,7 +1431,6 @@ impl Tab { floating_panes_stack, ); - self.hide_cursor_and_clear_display_as_needed(output); self.tiled_panes .render(output, self.floating_panes.panes_are_visible()) .with_context(err_context)?; @@ -1437,15 +1440,18 @@ impl Tab { .with_context(err_context)?; } - // FIXME: Once clients can be distinguished - if let Some(overlay_vte) = &overlay { - output.add_post_vte_instruction_to_multiple_clients( - connected_clients.iter().copied(), - overlay_vte, - ); + self.render_cursor(output); + if output.is_dirty() { + self.hide_cursor_and_clear_display_as_needed(output); + // FIXME: Once clients can be distinguished + if let Some(overlay_vte) = &overlay { + output.add_post_vte_instruction_to_multiple_clients( + connected_clients.iter().copied(), + overlay_vte, + ); + } } - self.render_cursor(output); Ok(()) } @@ -1466,25 +1472,41 @@ impl Tab { self.should_clear_display_before_rendering = false; } } - fn render_cursor(&self, output: &mut Output) { + fn render_cursor(&mut self, output: &mut Output) { let connected_clients: Vec = { self.connected_clients.borrow().iter().copied().collect() }; for client_id in connected_clients { match self.get_active_terminal_cursor_position(client_id) { Some((cursor_position_x, cursor_position_y)) => { - let show_cursor = "\u{1b}[?25h"; - let change_cursor_shape = self + let desired_cursor_shape = self .get_active_pane(client_id) .map(|ap| ap.cursor_shape_csi()) .unwrap_or_default(); - let goto_cursor_position = &format!( - "\u{1b}[{};{}H\u{1b}[m{}", - cursor_position_y + 1, - cursor_position_x + 1, - change_cursor_shape - ); // goto row/col - output.add_post_vte_instruction_to_client(client_id, show_cursor); - output.add_post_vte_instruction_to_client(client_id, goto_cursor_position); + let cursor_changed_position_or_shape = self + .cursor_positions_and_shape + .get(&client_id) + .map(|(previous_x, previous_y, previous_shape)| { + previous_x != &cursor_position_x + || previous_y != &cursor_position_y + || previous_shape != &desired_cursor_shape + }) + .unwrap_or(true); + + if output.is_dirty() || cursor_changed_position_or_shape { + let show_cursor = "\u{1b}[?25h"; + let goto_cursor_position = &format!( + "\u{1b}[{};{}H\u{1b}[m{}", + cursor_position_y + 1, + cursor_position_x + 1, + desired_cursor_shape + ); // goto row/col + output.add_post_vte_instruction_to_client(client_id, show_cursor); + output.add_post_vte_instruction_to_client(client_id, goto_cursor_position); + self.cursor_positions_and_shape.insert( + client_id, + (cursor_position_x, cursor_position_y, desired_cursor_shape), + ); + } }, None => { let hide_cursor = "\u{1b}[?25l"; diff --git a/zellij-server/src/ui/boundaries.rs b/zellij-server/src/ui/boundaries.rs index c0827c24..2ba3e67e 100644 --- a/zellij-server/src/ui/boundaries.rs +++ b/zellij-server/src/ui/boundaries.rs @@ -27,10 +27,10 @@ pub mod boundary_type { pub const CROSS: &str = "┼"; } -pub(crate) type BoundaryType = &'static str; // easy way to refer to boundary_type above +pub type BoundaryType = &'static str; // easy way to refer to boundary_type above -#[derive(Clone, Copy, Debug)] -pub(crate) struct BoundarySymbol { +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct BoundarySymbol { boundary_type: BoundaryType, invisible: bool, color: Option, @@ -420,7 +420,7 @@ fn combine_symbols( } #[derive(PartialEq, Eq, Hash, Debug)] -pub(crate) struct Coordinates { +pub struct Coordinates { x: usize, y: usize, } @@ -433,7 +433,7 @@ impl Coordinates { pub struct Boundaries { viewport: Viewport, - boundary_characters: HashMap, + pub boundary_characters: HashMap, } impl Boundaries { @@ -540,9 +540,19 @@ impl Boundaries { } } } - pub fn render(&self) -> Result> { + pub fn render( + &self, + existing_boundaries_on_screen: Option<&Boundaries>, + ) -> Result> { let mut character_chunks = vec![]; for (coordinates, boundary_character) in &self.boundary_characters { + let already_on_screen = existing_boundaries_on_screen + .and_then(|e| e.boundary_characters.get(coordinates)) + .map(|e| e == boundary_character) + .unwrap_or(false); + if already_on_screen { + continue; + } character_chunks.push(CharacterChunk::new( vec![boundary_character .as_terminal_character() diff --git a/zellij-server/src/ui/pane_contents_and_ui.rs b/zellij-server/src/ui/pane_contents_and_ui.rs index 946d9f68..1cc715d8 100644 --- a/zellij-server/src/ui/pane_contents_and_ui.rs +++ b/zellij-server/src/ui/pane_contents_and_ui.rs @@ -65,15 +65,17 @@ impl<'a> PaneContentsAndUi<'a> { self.z_index, ); if let Some(raw_vte_output) = raw_vte_output { - self.output.add_post_vte_instruction_to_multiple_clients( - clients.iter().copied(), - &format!( - "\u{1b}[{};{}H\u{1b}[m{}", - self.pane.y() + 1, - self.pane.x() + 1, - raw_vte_output - ), - ); + if !raw_vte_output.is_empty() { + self.output.add_post_vte_instruction_to_multiple_clients( + clients.iter().copied(), + &format!( + "\u{1b}[{};{}H\u{1b}[m{}", + self.pane.y() + 1, + self.pane.x() + 1, + raw_vte_output + ), + ); + } } } Ok(()) @@ -140,11 +142,22 @@ impl<'a> PaneContentsAndUi<'a> { } Ok(()) } - pub fn render_terminal_title_if_needed(&mut self, client_id: ClientId, client_mode: InputMode) { + pub fn render_terminal_title_if_needed( + &mut self, + client_id: ClientId, + client_mode: InputMode, + previous_title: &mut Option, + ) { if !self.focused_clients.contains(&client_id) { return; } let vte_output = self.pane.render_terminal_title(client_mode); + if let Some(previous_title) = previous_title { + if *previous_title == vte_output { + return; + } + } + *previous_title = Some(vte_output.clone()); self.output .add_post_vte_instruction_to_client(client_id, &vte_output); } diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs index 0ab4f0fa..240a3464 100644 --- a/zellij-server/src/unit/screen_tests.rs +++ b/zellij-server/src/unit/screen_tests.rs @@ -41,31 +41,13 @@ use std::collections::HashMap; use std::rc::Rc; use zellij_utils::vte; -// TODO: deduplicate with identical function in tab_integration_tests fn take_snapshot_and_cursor_coordinates( ansi_instructions: &str, - rows: usize, - columns: usize, - palette: Palette, + grid: &mut Grid, ) -> (Option<(usize, usize)>, String) { - let sixel_image_store = Rc::new(RefCell::new(SixelImageStore::default())); - let terminal_emulator_color_codes = Rc::new(RefCell::new(HashMap::new())); - let character_cell_size = Rc::new(RefCell::new(Some(SizeInPixels { - width: 8, - height: 21, - }))); - let mut grid = Grid::new( - rows, - columns, - Rc::new(RefCell::new(palette)), - terminal_emulator_color_codes, - Rc::new(RefCell::new(LinkHandler::new())), - character_cell_size, - sixel_image_store, - ); let mut vte_parser = vte::Parser::new(); for &byte in ansi_instructions.as_bytes() { - vte_parser.advance(&mut grid, byte); + vte_parser.advance(grid, byte); } (grid.cursor_coordinates(), format!("{:?}", grid)) } @@ -74,6 +56,21 @@ fn take_snapshots_and_cursor_coordinates_from_render_events<'a>( all_events: impl Iterator, screen_size: Size, ) -> Vec<(Option<(usize, usize)>, String)> { + let sixel_image_store = Rc::new(RefCell::new(SixelImageStore::default())); + let terminal_emulator_color_codes = Rc::new(RefCell::new(HashMap::new())); + let character_cell_size = Rc::new(RefCell::new(Some(SizeInPixels { + width: 8, + height: 21, + }))); + let mut grid = Grid::new( + screen_size.rows, + screen_size.cols, + Rc::new(RefCell::new(Palette::default())), + terminal_emulator_color_codes, + Rc::new(RefCell::new(LinkHandler::new())), + character_cell_size, + sixel_image_store, + ); let snapshots: Vec<(Option<(usize, usize)>, String)> = all_events .filter_map(|server_instruction| { match server_instruction { @@ -81,12 +78,8 @@ fn take_snapshots_and_cursor_coordinates_from_render_events<'a>( if let Some(output) = output { // note this only takes a snapshot of the first client! let raw_snapshot = output.get(&1).unwrap(); - let snapshot = take_snapshot_and_cursor_coordinates( - raw_snapshot, - screen_size.rows, - screen_size.cols, - Palette::default(), - ); + let snapshot = + take_snapshot_and_cursor_coordinates(raw_snapshot, &mut grid); Some(snapshot) } else { None diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-2.snap index 2df4565e..a95a55c6 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1805 +assertion_line: 2223 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): │ │ +05 (C): │ │ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-3.snap index c8e5e9a9..93f20f71 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_pane_action-3.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1805 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2225 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ -01 (C): │ │ -02 (C): │ │ -03 (C): │ │ -04 (C): │ │ -05 (C): │ │ -06 (C): │ │ -07 (C): │ │ -08 (C): │ │ -09 (C): └──────────────────────────────────────────────────────────────────────────────┘ - +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-2.snap index eea7656b..495842f6 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2118 +assertion_line: 2459 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-3.snap index b4240eb0..9abd2dfc 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2118 +assertion_line: 2459 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): └──────────────────────────────────────────────────────────────────────────────┘ +05 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-4.snap index eea7656b..eba5795d 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_close_tab_action-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2118 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2461 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-2.snap index 74460796..1305cf7b 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-2.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 939 +assertion_line: 1042 expression: "format!(\"{:?}\", cursor_coordinates)" --- -Some((1, 1)) +Some((41, 1)) diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-3.snap index f0d453eb..3a04bde8 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_next_pane_action-3.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 939 -expression: "format!(\"{:?}\", cursor_coordinates)" +assertion_line: 1044 +expression: "format!(\"{}\", snapshot_count)" --- -Some((41, 1)) +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-2.snap index c8861240..ae6be657 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-2.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 968 +assertion_line: 1080 expression: "format!(\"{:?}\", cursor_coordinates)" --- -Some((1, 1)) +Some((41, 1)) diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-3.snap index 89f17aa7..56d383ed 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_focus_previous_pane_action-3.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 968 -expression: "format!(\"{:?}\", cursor_coordinates)" +assertion_line: 1082 +expression: "format!(\"{}\", snapshot_count)" --- -Some((41, 1)) +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-2.snap index 6eb10760..a0264d66 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2037 +assertion_line: 2423 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-3.snap index a2f36767..cd63569f 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2037 +assertion_line: 2423 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): └──────────────────────────────────────────────────────────────────────────────┘ +05 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-4.snap index 6eb10760..df0ddc91 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_goto_tab_action-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2037 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2425 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-2.snap index 0f0a9e25..36487ff3 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1397 +assertion_line: 1702 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 9 ││ │ +02 (C): │fill pane up with something 10 ││ │ +03 (C): │fill pane up with something 11 ││ │ +04 (C): │fill pane up with something 12 ││ │ +05 (C): │fill pane up with something 13 ││ │ +06 (C): │fill pane up with something 14 ││ │ +07 (C): │fill pane up with something 15 ││ │ +08 (C): │fill pane up with something 16 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-3.snap index 884173f4..e0476fec 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1397 +assertion_line: 1702 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐ -01 (C): │fill pane up with something 9 │ -02 (C): │fill pane up with something 10 │ -03 (C): │fill pane up with something 11 │ -04 (C): │fill pane up with something 12 │ -05 (C): │fill pane up with something 13 │ -06 (C): │fill pane up with something 14 │ -07 (C): │fill pane up with something 15 │ -08 (C): │fill pane up with something 16 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 8/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 5 ││ │ +02 (C): │fill pane up with something 6 ││ │ +03 (C): │fill pane up with something 7 ││ │ +04 (C): │fill pane up with something 8 ││ │ +05 (C): │fill pane up with something 9 ││ │ +06 (C): │fill pane up with something 10 ││ │ +07 (C): │fill pane up with something 11 ││ │ +08 (C): │fill pane up with something 12 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-4.snap index 8118d806..36487ff3 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-4.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1397 +assertion_line: 1702 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 8/13 ┐ -01 (C): │fill pane up with something 5 │ -02 (C): │fill pane up with something 6 │ -03 (C): │fill pane up with something 7 │ -04 (C): │fill pane up with something 8 │ -05 (C): │fill pane up with something 9 │ -06 (C): │fill pane up with something 10 │ -07 (C): │fill pane up with something 11 │ -08 (C): │fill pane up with something 12 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 9 ││ │ +02 (C): │fill pane up with something 10 ││ │ +03 (C): │fill pane up with something 11 ││ │ +04 (C): │fill pane up with something 12 ││ │ +05 (C): │fill pane up with something 13 ││ │ +06 (C): │fill pane up with something 14 ││ │ +07 (C): │fill pane up with something 15 ││ │ +08 (C): │fill pane up with something 16 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-5.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-5.snap index 884173f4..f5742603 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-5.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_down_action-5.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1397 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1704 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐ -01 (C): │fill pane up with something 9 │ -02 (C): │fill pane up with something 10 │ -03 (C): │fill pane up with something 11 │ -04 (C): │fill pane up with something 12 │ -05 (C): │fill pane up with something 13 │ -06 (C): │fill pane up with something 14 │ -07 (C): │fill pane up with something 15 │ -08 (C): │fill pane up with something 16 │ -09 (C): └──────────────────────────────────────┘ - +4 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-2.snap index 4fdd411b..f400815e 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1354 +assertion_line: 1639 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 9 ││ │ +02 (C): │fill pane up with something 10 ││ │ +03 (C): │fill pane up with something 11 ││ │ +04 (C): │fill pane up with something 12 ││ │ +05 (C): │fill pane up with something 13 ││ │ +06 (C): │fill pane up with something 14 ││ │ +07 (C): │fill pane up with something 15 ││ │ +08 (C): │fill pane up with something 16 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-3.snap index f0b88e27..f33220f2 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_half_page_scroll_up_action-3.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1354 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1641 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐ -01 (C): │fill pane up with something 9 │ -02 (C): │fill pane up with something 10 │ -03 (C): │fill pane up with something 11 │ -04 (C): │fill pane up with something 12 │ -05 (C): │fill pane up with something 13 │ -06 (C): │fill pane up with something 14 │ -07 (C): │fill pane up with something 15 │ -08 (C): │fill pane up with something 16 │ -09 (C): └──────────────────────────────────────┘ - +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-2.snap index 7a6fd48a..2cbf6cd5 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-2.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1030 +assertion_line: 1160 expression: "format!(\"{:?}\", cursor_coordinates)" --- -Some((1, 1)) +Some((41, 1)) diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-3.snap index 400b84d7..6ebce514 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_or_tab_pane_action-3.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1030 -expression: "format!(\"{:?}\", cursor_coordinates)" +assertion_line: 1162 +expression: "format!(\"{}\", snapshot_count)" --- -Some((41, 1)) +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-2.snap index 208d683f..83bbdbb6 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-2.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 999 +assertion_line: 1120 expression: "format!(\"{:?}\", cursor_coordinates)" --- -Some((1, 1)) +Some((41, 1)) diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-3.snap index 407ab4bb..f9d353ec 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_focus_pane_action-3.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 999 -expression: "format!(\"{:?}\", cursor_coordinates)" +assertion_line: 1122 +expression: "format!(\"{}\", snapshot_count)" --- -Some((41, 1)) +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-2.snap index 14158fbd..ad657ff1 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-2.snap @@ -1,26 +1,26 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1060 +assertion_line: 1194 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): -10 (C): -11 (C): -12 (C): -13 (C): -14 (C): -15 (C): -16 (C): -17 (C): -18 (C): -19 (C): +00 (C): ┌ Pane #2 ─────────────────────────────┐┌ Pane #1 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): │ ││ │ +10 (C): │ ││ │ +11 (C): │ ││ │ +12 (C): │ ││ │ +13 (C): │ ││ │ +14 (C): │ ││ │ +15 (C): │ ││ │ +16 (C): │ ││ │ +17 (C): │ ││ │ +18 (C): │ ││ │ +19 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-3.snap index d4fc90dd..50082f01 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_move_pane_action-3.snap @@ -1,26 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1060 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1196 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #2 ─────────────────────────────┐┌ Pane #1 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): │ ││ │ -10 (C): │ ││ │ -11 (C): │ ││ │ -12 (C): │ ││ │ -13 (C): │ ││ │ -14 (C): │ ││ │ -15 (C): │ ││ │ -16 (C): │ ││ │ -17 (C): │ ││ │ -18 (C): │ ││ │ -19 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ - +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-2.snap index f44abd51..fbf000fe 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1969 +assertion_line: 2346 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-3.snap index 6c8d7629..fcef454d 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1969 +assertion_line: 2346 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): └──────────────────────────────────────────────────────────────────────────────┘ +05 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-4.snap index f44abd51..475475ae 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_next_tab_action-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1969 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2348 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-2.snap index dd4795d3..813e0411 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1318 +assertion_line: 1593 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 9/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 4 ││ │ +02 (C): │fill pane up with something 5 ││ │ +03 (C): │fill pane up with something 6 ││ │ +04 (C): │fill pane up with something 7 ││ │ +05 (C): │fill pane up with something 8 ││ │ +06 (C): │fill pane up with something 9 ││ │ +07 (C): │fill pane up with something 10 ││ │ +08 (C): │fill pane up with something 11 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-3.snap index 38ae6619..c570d8d7 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1318 +assertion_line: 1593 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 9/13 ┐ -01 (C): │fill pane up with something 4 │ -02 (C): │fill pane up with something 5 │ -03 (C): │fill pane up with something 6 │ -04 (C): │fill pane up with something 7 │ -05 (C): │fill pane up with something 8 │ -06 (C): │fill pane up with something 9 │ -07 (C): │fill pane up with something 10 │ -08 (C): │fill pane up with something 11 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ───────────── SCROLL: 13/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 0 ││ │ +02 (C): │fill pane up with something 1 ││ │ +03 (C): │fill pane up with something 2 ││ │ +04 (C): │fill pane up with something 3 ││ │ +05 (C): │fill pane up with something 4 ││ │ +06 (C): │fill pane up with something 5 ││ │ +07 (C): │fill pane up with something 6 ││ │ +08 (C): │fill pane up with something 7 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-4.snap index 73c58989..3c606aa7 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-4.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1318 +assertion_line: 1593 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ───────────── SCROLL: 13/13 ┐ -01 (C): │fill pane up with something 0 │ -02 (C): │fill pane up with something 1 │ -03 (C): │fill pane up with something 2 │ -04 (C): │fill pane up with something 3 │ -05 (C): │fill pane up with something 4 │ -06 (C): │fill pane up with something 5 │ -07 (C): │fill pane up with something 6 │ -08 (C): │fill pane up with something 7 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 5/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 8 ││ │ +02 (C): │fill pane up with something 9 ││ │ +03 (C): │fill pane up with something 10 ││ │ +04 (C): │fill pane up with something 11 ││ │ +05 (C): │fill pane up with something 12 ││ │ +06 (C): │fill pane up with something 13 ││ │ +07 (C): │fill pane up with something 14 ││ │ +08 (C): │fill pane up with something 15 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-5.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-5.snap index 5de916b8..e9a17763 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-5.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_down_action-5.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1318 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1595 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 5/13 ┐ -01 (C): │fill pane up with something 8 │ -02 (C): │fill pane up with something 9 │ -03 (C): │fill pane up with something 10 │ -04 (C): │fill pane up with something 11 │ -05 (C): │fill pane up with something 12 │ -06 (C): │fill pane up with something 13 │ -07 (C): │fill pane up with something 14 │ -08 (C): │fill pane up with something 15 │ -09 (C): └──────────────────────────────────────┘ - +4 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-2.snap index 15f71daf..75b3e602 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1275 +assertion_line: 1530 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 9/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 4 ││ │ +02 (C): │fill pane up with something 5 ││ │ +03 (C): │fill pane up with something 6 ││ │ +04 (C): │fill pane up with something 7 ││ │ +05 (C): │fill pane up with something 8 ││ │ +06 (C): │fill pane up with something 9 ││ │ +07 (C): │fill pane up with something 10 ││ │ +08 (C): │fill pane up with something 11 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-3.snap index 481e5b23..661ae9b1 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_page_scroll_up_action-3.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1275 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1532 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 9/13 ┐ -01 (C): │fill pane up with something 4 │ -02 (C): │fill pane up with something 5 │ -03 (C): │fill pane up with something 6 │ -04 (C): │fill pane up with something 7 │ -05 (C): │fill pane up with something 8 │ -06 (C): │fill pane up with something 9 │ -07 (C): │fill pane up with something 10 │ -08 (C): │fill pane up with something 11 │ -09 (C): └──────────────────────────────────────┘ - +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-2.snap index 412016df..a677592e 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2003 +assertion_line: 2387 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-3.snap index e2ff3ec6..1f0f1907 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2003 +assertion_line: 2387 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ─────────────────────────────┐┌ Pane #2 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): └──────────────────────────────────────────────────────────────────────────────┘ +05 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-4.snap index 412016df..82324999 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_previous_tab_action-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 2003 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2389 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-2.snap index 4d0118e1..2435355f 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 12 ││ │ +02 (C): │fill pane up with something 13 ││ │ +03 (C): │fill pane up with something 14 ││ │ +04 (C): │fill pane up with something 15 ││ │ +05 (C): │fill pane up with something 16 ││ │ +06 (C): │fill pane up with something 17 ││ │ +07 (C): │fill pane up with something 18 ││ │ +08 (C): │fill pane up with something 19 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-3.snap index ce17e618..a0d450ef 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐ -01 (C): │fill pane up with something 12 │ -02 (C): │fill pane up with something 13 │ -03 (C): │fill pane up with something 14 │ -04 (C): │fill pane up with something 15 │ -05 (C): │fill pane up with something 16 │ -06 (C): │fill pane up with something 17 │ -07 (C): │fill pane up with something 18 │ -08 (C): │fill pane up with something 19 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 11 ││ │ +02 (C): │fill pane up with something 12 ││ │ +03 (C): │fill pane up with something 13 ││ │ +04 (C): │fill pane up with something 14 ││ │ +05 (C): │fill pane up with something 15 ││ │ +06 (C): │fill pane up with something 16 ││ │ +07 (C): │fill pane up with something 17 ││ │ +08 (C): │fill pane up with something 18 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-4.snap index eea8c7f4..e2f43ec0 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-4.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐ -01 (C): │fill pane up with something 11 │ -02 (C): │fill pane up with something 12 │ -03 (C): │fill pane up with something 13 │ -04 (C): │fill pane up with something 14 │ -05 (C): │fill pane up with something 15 │ -06 (C): │fill pane up with something 16 │ -07 (C): │fill pane up with something 17 │ -08 (C): │fill pane up with something 18 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 10 ││ │ +02 (C): │fill pane up with something 11 ││ │ +03 (C): │fill pane up with something 12 ││ │ +04 (C): │fill pane up with something 13 ││ │ +05 (C): │fill pane up with something 14 ││ │ +06 (C): │fill pane up with something 15 ││ │ +07 (C): │fill pane up with something 16 ││ │ +08 (C): │fill pane up with something 17 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-5.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-5.snap index e2c021ed..e305c70e 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-5.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-5.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐ -01 (C): │fill pane up with something 10 │ -02 (C): │fill pane up with something 11 │ -03 (C): │fill pane up with something 12 │ -04 (C): │fill pane up with something 13 │ -05 (C): │fill pane up with something 14 │ -06 (C): │fill pane up with something 15 │ -07 (C): │fill pane up with something 16 │ -08 (C): │fill pane up with something 17 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 9 ││ │ +02 (C): │fill pane up with something 10 ││ │ +03 (C): │fill pane up with something 11 ││ │ +04 (C): │fill pane up with something 12 ││ │ +05 (C): │fill pane up with something 13 ││ │ +06 (C): │fill pane up with something 14 ││ │ +07 (C): │fill pane up with something 15 ││ │ +08 (C): │fill pane up with something 16 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-6.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-6.snap index 9765846d..e2f43ec0 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-6.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-6.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐ -01 (C): │fill pane up with something 9 │ -02 (C): │fill pane up with something 10 │ -03 (C): │fill pane up with something 11 │ -04 (C): │fill pane up with something 12 │ -05 (C): │fill pane up with something 13 │ -06 (C): │fill pane up with something 14 │ -07 (C): │fill pane up with something 15 │ -08 (C): │fill pane up with something 16 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 10 ││ │ +02 (C): │fill pane up with something 11 ││ │ +03 (C): │fill pane up with something 12 ││ │ +04 (C): │fill pane up with something 13 ││ │ +05 (C): │fill pane up with something 14 ││ │ +06 (C): │fill pane up with something 15 ││ │ +07 (C): │fill pane up with something 16 ││ │ +08 (C): │fill pane up with something 17 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-7.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-7.snap index e2c021ed..a0d450ef 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-7.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-7.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 +assertion_line: 1407 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐ -01 (C): │fill pane up with something 10 │ -02 (C): │fill pane up with something 11 │ -03 (C): │fill pane up with something 12 │ -04 (C): │fill pane up with something 13 │ -05 (C): │fill pane up with something 14 │ -06 (C): │fill pane up with something 15 │ -07 (C): │fill pane up with something 16 │ -08 (C): │fill pane up with something 17 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 11 ││ │ +02 (C): │fill pane up with something 12 ││ │ +03 (C): │fill pane up with something 13 ││ │ +04 (C): │fill pane up with something 14 ││ │ +05 (C): │fill pane up with something 15 ││ │ +06 (C): │fill pane up with something 16 ││ │ +07 (C): │fill pane up with something 17 ││ │ +08 (C): │fill pane up with something 18 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-8.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-8.snap index eea8c7f4..5455f620 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-8.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_down_action-8.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1193 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1409 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐ -01 (C): │fill pane up with something 11 │ -02 (C): │fill pane up with something 12 │ -03 (C): │fill pane up with something 13 │ -04 (C): │fill pane up with something 14 │ -05 (C): │fill pane up with something 15 │ -06 (C): │fill pane up with something 16 │ -07 (C): │fill pane up with something 17 │ -08 (C): │fill pane up with something 18 │ -09 (C): └──────────────────────────────────────┘ - +7 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-2.snap index fd5c4f89..20c9331f 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 +assertion_line: 1484 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 12 ││ │ +02 (C): │fill pane up with something 13 ││ │ +03 (C): │fill pane up with something 14 ││ │ +04 (C): │fill pane up with something 15 ││ │ +05 (C): │fill pane up with something 16 ││ │ +06 (C): │fill pane up with something 17 ││ │ +07 (C): │fill pane up with something 18 ││ │ +08 (C): │fill pane up with something 19 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-3.snap index 7a2e2371..5685baed 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 +assertion_line: 1484 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐ -01 (C): │fill pane up with something 12 │ -02 (C): │fill pane up with something 13 │ -03 (C): │fill pane up with something 14 │ -04 (C): │fill pane up with something 15 │ -05 (C): │fill pane up with something 16 │ -06 (C): │fill pane up with something 17 │ -07 (C): │fill pane up with something 18 │ -08 (C): │fill pane up with something 19 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 11 ││ │ +02 (C): │fill pane up with something 12 ││ │ +03 (C): │fill pane up with something 13 ││ │ +04 (C): │fill pane up with something 14 ││ │ +05 (C): │fill pane up with something 15 ││ │ +06 (C): │fill pane up with something 16 ││ │ +07 (C): │fill pane up with something 17 ││ │ +08 (C): │fill pane up with something 18 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-4.snap index 8e073396..5ae26d91 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-4.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 +assertion_line: 1484 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐ -01 (C): │fill pane up with something 11 │ -02 (C): │fill pane up with something 12 │ -03 (C): │fill pane up with something 13 │ -04 (C): │fill pane up with something 14 │ -05 (C): │fill pane up with something 15 │ -06 (C): │fill pane up with something 16 │ -07 (C): │fill pane up with something 17 │ -08 (C): │fill pane up with something 18 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 10 ││ │ +02 (C): │fill pane up with something 11 ││ │ +03 (C): │fill pane up with something 12 ││ │ +04 (C): │fill pane up with something 13 ││ │ +05 (C): │fill pane up with something 14 ││ │ +06 (C): │fill pane up with something 15 ││ │ +07 (C): │fill pane up with something 16 ││ │ +08 (C): │fill pane up with something 17 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-5.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-5.snap index 657ed3e8..e473c1ad 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-5.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-5.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 +assertion_line: 1484 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 3/13 ┐ -01 (C): │fill pane up with something 10 │ -02 (C): │fill pane up with something 11 │ -03 (C): │fill pane up with something 12 │ -04 (C): │fill pane up with something 13 │ -05 (C): │fill pane up with something 14 │ -06 (C): │fill pane up with something 15 │ -07 (C): │fill pane up with something 16 │ -08 (C): │fill pane up with something 17 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 9 ││ │ +02 (C): │fill pane up with something 10 ││ │ +03 (C): │fill pane up with something 11 ││ │ +04 (C): │fill pane up with something 12 ││ │ +05 (C): │fill pane up with something 13 ││ │ +06 (C): │fill pane up with something 14 ││ │ +07 (C): │fill pane up with something 15 ││ │ +08 (C): │fill pane up with something 16 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-6.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-6.snap index 60f03824..2a584fa3 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-6.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-6.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 +assertion_line: 1484 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 4/13 ┐ -01 (C): │fill pane up with something 9 │ -02 (C): │fill pane up with something 10 │ -03 (C): │fill pane up with something 11 │ -04 (C): │fill pane up with something 12 │ -05 (C): │fill pane up with something 13 │ -06 (C): │fill pane up with something 14 │ -07 (C): │fill pane up with something 15 │ -08 (C): │fill pane up with something 16 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 0/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 13 ││ │ +02 (C): │fill pane up with something 14 ││ │ +03 (C): │fill pane up with something 15 ││ │ +04 (C): │fill pane up with something 16 ││ │ +05 (C): │fill pane up with something 17 ││ │ +06 (C): │fill pane up with something 18 ││ │ +07 (C): │fill pane up with something 19 ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-7.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-7.snap index 92ac7a86..a24fe8bb 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-7.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_to_bottom_action-7.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1239 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1486 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 0/13 ┐ -01 (C): │fill pane up with something 13 │ -02 (C): │fill pane up with something 14 │ -03 (C): │fill pane up with something 15 │ -04 (C): │fill pane up with something 16 │ -05 (C): │fill pane up with something 17 │ -06 (C): │fill pane up with something 18 │ -07 (C): │fill pane up with something 19 │ -08 (C): │ │ -09 (C): └──────────────────────────────────────┘ - +6 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-2.snap index cd8a3061..d7056c6e 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1147 +assertion_line: 1327 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 12 ││ │ +02 (C): │fill pane up with something 13 ││ │ +03 (C): │fill pane up with something 14 ││ │ +04 (C): │fill pane up with something 15 ││ │ +05 (C): │fill pane up with something 16 ││ │ +06 (C): │fill pane up with something 17 ││ │ +07 (C): │fill pane up with something 18 ││ │ +08 (C): │fill pane up with something 19 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-3.snap index d61adfbc..7ccbbdea 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1147 +assertion_line: 1327 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 1/13 ┐ -01 (C): │fill pane up with something 12 │ -02 (C): │fill pane up with something 13 │ -03 (C): │fill pane up with something 14 │ -04 (C): │fill pane up with something 15 │ -05 (C): │fill pane up with something 16 │ -06 (C): │fill pane up with something 17 │ -07 (C): │fill pane up with something 18 │ -08 (C): │fill pane up with something 19 │ -09 (C): └──────────────────────────────────────┘ +00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐┌ Pane #2 ─────────────────────────────┐ +01 (C): │fill pane up with something 11 ││ │ +02 (C): │fill pane up with something 12 ││ │ +03 (C): │fill pane up with something 13 ││ │ +04 (C): │fill pane up with something 14 ││ │ +05 (C): │fill pane up with something 15 ││ │ +06 (C): │fill pane up with something 16 ││ │ +07 (C): │fill pane up with something 17 ││ │ +08 (C): │fill pane up with something 18 ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-4.snap index a2ef5fa2..18a949ac 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_scroll_up_action-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1149 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1329 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ────────────── SCROLL: 2/13 ┐ -01 (C): │fill pane up with something 11 │ -02 (C): │fill pane up with something 12 │ -03 (C): │fill pane up with something 13 │ -04 (C): │fill pane up with something 14 │ -05 (C): │fill pane up with something 15 │ -06 (C): │fill pane up with something 16 │ -07 (C): │fill pane up with something 17 │ -08 (C): │fill pane up with something 18 │ -09 (C): └──────────────────────────────────────┘ - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-2.snap index e20094c2..e9727e39 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1775 +assertion_line: 2186 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ +04 (C): │ │ │ │ +05 (C): │ │ │ │ +06 (C): │ │ │ │ +07 (C): │ └──────────────────────────────────────┘ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-3.snap index 105baa7f..70970461 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1775 +assertion_line: 2186 expression: "format!(\"{}\", snapshot)" --- 00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ 01 (C): │ │ 02 (C): │ │ -03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ -04 (C): │ │ │ │ -05 (C): │ │ │ │ -06 (C): │ │ │ │ -07 (C): │ └──────────────────────────────────────┘ │ +03 (C): │ │ +04 (C): │ │ +05 (C): │ │ +06 (C): │ │ +07 (C): │ │ 08 (C): │ │ 09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-4.snap index 84f72323..e9727e39 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-4.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1775 +assertion_line: 2186 expression: "format!(\"{}\", snapshot)" --- 00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ 01 (C): │ │ 02 (C): │ │ -03 (C): │ │ -04 (C): │ │ -05 (C): │ │ -06 (C): │ │ -07 (C): │ │ +03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ +04 (C): │ │ │ │ +05 (C): │ │ │ │ +06 (C): │ │ │ │ +07 (C): │ └──────────────────────────────────────┘ │ 08 (C): │ │ 09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-5.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-5.snap index 105baa7f..302dd37c 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-5.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_floating_panes-5.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1775 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2188 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ -01 (C): │ │ -02 (C): │ │ -03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ -04 (C): │ │ │ │ -05 (C): │ │ │ │ -06 (C): │ │ │ │ -07 (C): │ └──────────────────────────────────────┘ │ -08 (C): │ │ -09 (C): └──────────────────────────────────────────────────────────────────────────────┘ - +4 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-2.snap index d7a84628..a5049d6c 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1427 +assertion_line: 1739 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ │ +04 (C): │ │ +05 (C): │ │ +06 (C): │ │ +07 (C): │ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-3.snap index 25e1f8df..3b14d03c 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_full_screen_action-3.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1427 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1741 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #1 ─────────────────────────────────────────────────────────────────────┐ -01 (C): │ │ -02 (C): │ │ -03 (C): │ │ -04 (C): │ │ -05 (C): │ │ -06 (C): │ │ -07 (C): │ │ -08 (C): │ │ -09 (C): └──────────────────────────────────────────────────────────────────────────────┘ - +2 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-2.snap index 0cffa2c9..a6119cc8 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1737 +assertion_line: 2131 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ +01 (C): │ │ +02 (C): │ │ +03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ +04 (C): │ │ │ │ +05 (C): │ │ │ │ +06 (C): │ │ │ │ +07 (C): │ └──────────────────────────────────────┘ │ +08 (C): │ │ +09 (C): └──────────────────────────────────────────────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-3.snap index 81d9b259..b612c671 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-3.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1737 +assertion_line: 2131 expression: "format!(\"{}\", snapshot)" --- -00 (C): ┌ Pane #2 ─────────────────────────────────────────────────────────────────────┐ -01 (C): │ │ -02 (C): │ │ -03 (C): │ ┌ Pane #1 ─────────────────────────────┐ │ -04 (C): │ │ │ │ -05 (C): │ │ │ │ -06 (C): │ │ │ │ -07 (C): │ └──────────────────────────────────────┘ │ -08 (C): │ │ -09 (C): └──────────────────────────────────────────────────────────────────────────────┘ +00 (C): ┌ Pane #2 ─────────────────────────────┐┌ Pane #1 ─────────────────────────────┐ +01 (C): │ ││ │ +02 (C): │ ││ │ +03 (C): │ ││ │ +04 (C): │ ││ │ +05 (C): │ ││ │ +06 (C): │ ││ │ +07 (C): │ ││ │ +08 (C): │ ││ │ +09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-4.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-4.snap index 3ee6542f..dc2d3697 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-4.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_embed_or_float-4.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1737 -expression: "format!(\"{}\", snapshot)" +assertion_line: 2133 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): ┌ Pane #2 ─────────────────────────────┐┌ Pane #1 ─────────────────────────────┐ -01 (C): │ ││ │ -02 (C): │ ││ │ -03 (C): │ ││ │ -04 (C): │ ││ │ -05 (C): │ ││ │ -06 (C): │ ││ │ -07 (C): │ ││ │ -08 (C): │ ││ │ -09 (C): └──────────────────────────────────────┘└──────────────────────────────────────┘ - +3 diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-2.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-2.snap index 2e0fc915..5d8c103b 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-2.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-2.snap @@ -1,16 +1,16 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1457 +assertion_line: 1776 expression: "format!(\"{}\", snapshot)" --- -00 (C): -01 (C): -02 (C): -03 (C): -04 (C): -05 (C): -06 (C): -07 (C): -08 (C): -09 (C): +00 (C): │ +01 (C): │ +02 (C): │ +03 (C): │ +04 (C): │ +05 (C): │ +06 (C): │ +07 (C): │ +08 (C): │ +09 (C): │ diff --git a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-3.snap b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-3.snap index 395ce350..160be32e 100644 --- a/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-3.snap +++ b/zellij-server/src/unit/snapshots/zellij_server__screen__screen_tests__send_cli_toggle_pane_frames_action-3.snap @@ -1,16 +1,6 @@ --- source: zellij-server/src/./unit/screen_tests.rs -assertion_line: 1457 -expression: "format!(\"{}\", snapshot)" +assertion_line: 1778 +expression: "format!(\"{}\", snapshot_count)" --- -00 (C): │ -01 (C): │ -02 (C): │ -03 (C): │ -04 (C): │ -05 (C): │ -06 (C): │ -07 (C): │ -08 (C): │ -09 (C): │ - +2 diff --git a/zellij-server/src/wasm_vm.rs b/zellij-server/src/wasm_vm.rs index dfbaa061..ed9f11e4 100644 --- a/zellij-server/src/wasm_vm.rs +++ b/zellij-server/src/wasm_vm.rs @@ -234,8 +234,10 @@ pub(crate) fn wasm_thread_main( .get_function("update") .with_context(err_context)?; wasi_write_object(&plugin_env.wasi_env, &event); - update.call(&[]).or_else::(|e| { - match e.downcast::() { + let update_return = + update.call(&[]).or_else::(|e| match e + .downcast::() + { Ok(_) => panic!( "{}", anyError::new(VersionMismatchError::new( @@ -245,10 +247,13 @@ pub(crate) fn wasm_thread_main( )) ), Err(e) => Err(e).with_context(err_context), - } - })?; + })?; + let should_render = match update_return.get(0) { + Some(Value::I32(n)) => *n == 1, + _ => false, + }; - if *rows > 0 && *columns > 0 { + if *rows > 0 && *columns > 0 && should_render { let render = instance .exports .get_function("render") diff --git a/zellij-tile/src/lib.rs b/zellij-tile/src/lib.rs index 00dc60a9..800b6d68 100644 --- a/zellij-tile/src/lib.rs +++ b/zellij-tile/src/lib.rs @@ -6,7 +6,9 @@ use zellij_utils::data::Event; #[allow(unused_variables)] pub trait ZellijPlugin { fn load(&mut self) {} - fn update(&mut self, event: Event) {} + fn update(&mut self, event: Event) -> bool { + false + } // return true if it should render fn render(&mut self, rows: usize, cols: usize) {} } @@ -41,15 +43,13 @@ macro_rules! register_plugin { } #[no_mangle] - pub fn update() { + pub fn update() -> bool { let object = $crate::shim::object_from_stdin() .context($crate::PLUGIN_MISMATCH) .to_stdout() .unwrap(); - STATE.with(|state| { - state.borrow_mut().update(object); - }); + STATE.with(|state| state.borrow_mut().update(object)) } #[no_mangle]