diff --git a/src/main.rs b/src/main.rs index 7b1293f30..f495dd21b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,7 +28,7 @@ enum ApiCommand { MoveFocus, } -#[derive(StructOpt, Debug)] +#[derive(StructOpt, Debug, Default)] #[structopt(name = "mosaic")] pub struct Opt { #[structopt(short, long)] @@ -39,7 +39,10 @@ pub struct Opt { move_focus: bool, #[structopt(short, long)] /// Send "open file in new pane" to active mosaic session - open_file: Option + open_file: Option, + #[structopt(long)] + /// Maximum panes on screen, caution: opening more panes will close old ones + max_panes: Option } fn _debug_log_to_file (message: String) { @@ -77,18 +80,18 @@ pub fn main() { let api_command = bincode::serialize(&ApiCommand::OpenFile(file_to_open)).unwrap(); stream.write_all(&api_command).unwrap(); } else { - start(Box::new(os_input)); + start(Box::new(os_input), opts); } } -pub fn start(mut os_input: Box) { +pub fn start(mut os_input: Box, opts: Opt) { let mut active_threads = vec![]; let full_screen_ws = os_input.get_terminal_size_using_fd(0); os_input.into_raw_mode(0); let (send_screen_instructions, receive_screen_instructions): (Sender, Receiver) = channel(); let (send_pty_instructions, receive_pty_instructions): (Sender, Receiver) = channel(); - let mut screen = Screen::new(receive_screen_instructions, send_pty_instructions.clone(), &full_screen_ws, os_input.clone()); + let mut screen = Screen::new(receive_screen_instructions, send_pty_instructions.clone(), &full_screen_ws, os_input.clone(), opts.max_panes); let mut pty_bus = PtyBus::new(receive_pty_instructions, send_screen_instructions.clone(), os_input.clone()); active_threads.push( @@ -212,7 +215,7 @@ pub fn start(mut os_input: Box) { match &decoded { ApiCommand::OpenFile(file_name) => { let path = PathBuf::from(file_name); - send_pty_instructions.send(PtyInstruction::SpawnTerminalVertically(Some(path))).unwrap(); + send_pty_instructions.send(PtyInstruction::SpawnTerminal(Some(path))).unwrap(); } ApiCommand::SplitHorizontally => { send_pty_instructions.send(PtyInstruction::SpawnTerminalHorizontally(None)).unwrap(); diff --git a/src/screen.rs b/src/screen.rs index ec72c8f3f..670b90f1c 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -78,6 +78,7 @@ pub enum ScreenInstruction { pub struct Screen { pub receiver: Receiver, + max_panes: Option, send_pty_instructions: Sender, full_screen_ws: Winsize, terminals: BTreeMap, // BTreeMap because we need a predictable order when changing focus @@ -86,9 +87,16 @@ pub struct Screen { } impl Screen { - pub fn new (receive_screen_instructions: Receiver, send_pty_instructions: Sender, full_screen_ws: &Winsize, os_api: Box) -> Self { + pub fn new ( + receive_screen_instructions: Receiver, + send_pty_instructions: Sender, + full_screen_ws: &Winsize, + os_api: Box, + max_panes: Option, + ) -> Self { Screen { receiver: receive_screen_instructions, + max_panes, send_pty_instructions, full_screen_ws: full_screen_ws.clone(), terminals: BTreeMap::new(), @@ -97,6 +105,7 @@ impl Screen { } } pub fn new_pane(&mut self, pid: RawFd) { + self.close_down_to_max_terminals(); if self.terminals.is_empty() { let x = 0; let y = 0; @@ -146,6 +155,7 @@ impl Screen { } } pub fn horizontal_split(&mut self, pid: RawFd) { + self.close_down_to_max_terminals(); if self.terminals.is_empty() { let x = 0; let y = 0; @@ -187,6 +197,7 @@ impl Screen { } } pub fn vertical_split(&mut self, pid: RawFd) { + self.close_down_to_max_terminals(); if self.terminals.is_empty() { let x = 0; let y = 0; @@ -963,7 +974,24 @@ impl Screen { } None } + fn close_down_to_max_terminals (&mut self) { + if let Some(max_panes) = self.max_panes { + if self.terminals.len() >= max_panes { + for _ in max_panes..=self.terminals.len() { + let first_pid = *self.terminals.iter().next().unwrap().0; + self.send_pty_instructions.send(PtyInstruction::ClosePane(first_pid)).unwrap(); + self.close_pane_without_rerender(first_pid); // TODO: do not render yet + } + } + } + } pub fn close_pane(&mut self, id: RawFd) { + if self.terminals.get(&id).is_some() { + self.close_pane_without_rerender(id); + self.render(); + } + } + pub fn close_pane_without_rerender(&mut self, id: RawFd) { if let Some(terminal_to_close) = &self.terminals.get(&id) { let terminal_to_close_width = terminal_to_close.display_cols; let terminal_to_close_height = terminal_to_close.display_rows; @@ -999,7 +1027,6 @@ impl Screen { return; // TODO: exit app? here we're trying to close the last pane on screen } self.terminals.remove(&id); - self.render(); } } pub fn close_focused_pane(&mut self) { diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index ef122583f..aae545b07 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -19,7 +19,7 @@ pub fn starts_with_one_terminal () { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -37,7 +37,7 @@ pub fn split_terminals_vertically() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 17]); // split-vertically and quit (ctrl-n + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -55,7 +55,7 @@ pub fn split_terminals_horizontally() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 17]); // split-horizontally and quit (ctrl-b + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -73,8 +73,8 @@ pub fn split_largest_terminal () { ws_ypixel: 0, }; let mut fake_input_output = get_fake_os_input(&fake_win_size); - fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) - start(Box::new(fake_input_output.clone())); + fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 3 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -110,7 +110,7 @@ pub fn resize_right_and_up_on_the_same_axis() { // (ctrl-b + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-l + ctrl-h + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[2, 14, 16, 14, 16, 16, 12, 8, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -128,7 +128,29 @@ pub fn scrolling_inside_a_pane() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 14, 27, 27, 29, 29, 17]); // split-horizontally, split-vertically, scroll up twice, scroll down twice and quit (ctrl-b + ctrl+[ * 2 + ctrl+] * 2, ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); + let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { + assert_snapshot!(snapshot); + } +} + +#[test] +pub fn max_panes () { + // with the --max-panes option, we only allow a certain amount of panes on screen + // simultaneously, new panes beyond this limit will close older panes on screen + let fake_win_size = Winsize { // TODO: combine with above + ws_col: 121, + ws_row: 20, + ws_xpixel: 0, + ws_ypixel: 0, + }; + let mut fake_input_output = get_fake_os_input(&fake_win_size); + fake_input_output.add_terminal_input(&[13, 13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q) + let mut opts = Opt::default(); + opts.max_panes = Some(4); + start(Box::new(fake_input_output.clone()), opts); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs index 8d3b181cf..09ee6a9db 100644 --- a/src/tests/integration/close_pane.rs +++ b/src/tests/integration/close_pane.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -27,7 +27,7 @@ pub fn close_pane_with_another_pane_above_it() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 24, 17]); // split-horizontally, close focused pane and quit (ctrl-b + ctrl-x + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -54,7 +54,7 @@ pub fn close_pane_with_another_pane_below_it() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 16, 24, 17]); // split-horizontally, change-focus, close focused pane and quit (ctrl-b + ctrl-p + ctrl-x + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -79,7 +79,7 @@ pub fn close_pane_with_another_pane_to_the_left() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 24, 17]); // split-vertically, close focused pane and quit (ctrl-n + ctrl-x + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -104,7 +104,7 @@ pub fn close_pane_with_another_pane_to_the_right() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 16, 24, 17]); // split-vertically, change-focus, close focused pane and quit (ctrl-n + ctrl-p + ctrl-x + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -133,7 +133,7 @@ pub fn close_pane_with_multiple_panes_above_it() { // split-horizontally, change-focus, split-vertically, change-focus * 2, close focused pane and quit // (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -162,7 +162,7 @@ pub fn close_pane_with_multiple_panes_below_it() { // split-horizontally, split-vertically, change-focus, change-focus, close focused pane and quit // (ctrl-b + ctrl-n + ctrl-p + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[2, 14, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -191,7 +191,7 @@ pub fn close_pane_with_multiple_panes_to_the_left() { // split-vertically, change-focus, split-horizontally, change-focus * 2, close focused pane and quit // (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -220,7 +220,7 @@ pub fn close_pane_with_multiple_panes_to_the_right() { // split-vertically, change-focus, split-horizontally, change-focus * 2, close focused pane and quit // (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -252,7 +252,7 @@ pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() { // (ctrl-b + ctrl-n + ctrl-n + ctrl-p + ctrl-n + ctrl-n + ctrl-k + ctrl-p + ctrl-k + ctrl-p * 4 // + ctrl-n + ctrl-p * 3 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[2, 14, 14, 16, 14, 14, 11, 16, 11, 16, 16, 16, 16, 14, 16, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -284,7 +284,7 @@ pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() { // (ctrl-b + ctrl-n + ctrl-n + ctrl-p + ctrl-n + ctrl-n + ctrl-j + ctrl-p + ctrl-j + ctrl-p * 2 // + ctrl-n + ctrl-p * 5 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[2, 14, 14, 16, 14, 14, 10, 16, 10, 16, 16, 14, 16, 16, 16, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -319,7 +319,7 @@ pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() { // (ctrl-n + ctrl-b + ctrl-b + ctrl-p + ctrl-b + ctrl-b + ctrl-h + ctrl-p + ctrl-h + ctrl-p * 4 // + ctrl-b + ctrl-p * 3 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 2, 16, 2, 2, 8, 16, 8, 16, 16, 16, 16, 2, 16, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -353,7 +353,7 @@ pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() { // (ctrl-n + ctrl-b + ctrl-b + ctrl-p + ctrl-b + ctrl-b + ctrl-h + ctrl-p + ctrl-h + ctrl-p * 2 // + ctrl-b + ctrl-p * 5 + ctrl-x + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 2, 16, 2, 2, 8, 16, 8, 16, 16, 2, 16, 16, 16, 16, 16, 24, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs index cd04d3540..74c58baca 100644 --- a/src/tests/integration/compatibility.rs +++ b/src/tests/integration/compatibility.rs @@ -2,7 +2,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; use ::std::collections::HashMap; -use crate::start; +use crate::{start, Opt}; use crate::tests::possible_tty_inputs::Bytes; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -38,7 +38,7 @@ pub fn run_bandwhich_from_fish_shell() { let fixture_name = "fish_and_bandwhich"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -57,7 +57,7 @@ pub fn fish_tab_completion_options() { let fixture_name = "fish_tab_completion_options"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -81,7 +81,7 @@ pub fn fish_select_tab_completion_options() { let fixture_name = "fish_select_tab_completion_options"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -109,7 +109,7 @@ pub fn vim_scroll_region_down () { let fixture_name = "vim_scroll_region_down"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -134,7 +134,7 @@ pub fn vim_ctrl_d() { let fixture_name = "vim_ctrl_d"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { @@ -158,7 +158,7 @@ pub fn vim_ctrl_u() { let fixture_name = "vim_ctrl_u"; let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); for snapshot in snapshots { diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs index e2c2ac5db..ae925e896 100644 --- a/src/tests/integration/resize_down.rs +++ b/src/tests/integration/resize_down.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -28,7 +28,7 @@ pub fn resize_down_with_pane_above() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 10, 17]); // split-horizontally, resize-down and quit (ctrl-b + ctrl-j + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -55,7 +55,7 @@ pub fn resize_down_with_pane_below() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 16, 10, 17]); // split-horizontally, change-focus, resize-down and quit (ctrl-b + ctrl-p + ctrl-j + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -86,7 +86,7 @@ pub fn resize_down_with_panes_above_and_below() { let mut fake_input_output = get_fake_os_input(&fake_win_size); // split-horizontally * 2, change-focus * 2, resize-down and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -116,7 +116,7 @@ pub fn resize_down_with_multiple_panes_above() { // (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -146,7 +146,7 @@ pub fn resize_down_with_panes_above_aligned_left_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -176,7 +176,7 @@ pub fn resize_down_with_panes_below_aligned_left_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p + ctrl-p + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -206,7 +206,7 @@ pub fn resize_down_with_panes_above_aligned_right_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -237,7 +237,7 @@ pub fn resize_down_with_panes_below_aligned_right_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -267,7 +267,7 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_current_pane() { // (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -297,7 +297,7 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_current_pane() { // (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-p * 2 + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -328,7 +328,7 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_lef // ctrl-n * 2 + ctrl-p * 6 + ctrl-h * 2 + ctrl-p + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 14, 14, 16, 16, 16, 16, 16, 16, 8, 8, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -360,7 +360,7 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_ // ctrl-n * 2 + ctrl-p * 2 + ctrl-h * 2 + ctrl-p * 5 + ctrl-j + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 16, 16, 14, 14, 16, 16, 8, 8, 16, 16, 16, 16, 16, 10, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); diff --git a/src/tests/integration/resize_left.rs b/src/tests/integration/resize_left.rs index bff82e3e5..2039c0a42 100644 --- a/src/tests/integration/resize_left.rs +++ b/src/tests/integration/resize_left.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -25,7 +25,7 @@ pub fn resize_left_with_pane_to_the_left() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 8, 17]); // split-vertically, resize-left and quit (ctrl-n + ctrl-h + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -50,7 +50,7 @@ pub fn resize_left_with_pane_to_the_right() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 16, 8, 17]); // split-vertically, change-focus resize-left and quit (ctrl-n + ctrl-p + ctrl-h + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -76,7 +76,7 @@ pub fn resize_left_with_panes_to_the_left_and_right() { let mut fake_input_output = get_fake_os_input(&fake_win_size); // split-vertically * 2, change-focus * 2, resize-right and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -104,7 +104,7 @@ pub fn resize_left_with_multiple_panes_to_the_left() { // (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -132,7 +132,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -160,7 +160,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -188,7 +188,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2, ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -217,7 +217,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -247,7 +247,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pa // (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -277,7 +277,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_p // (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-p * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 16, 16, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -308,7 +308,7 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abov // ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -340,7 +340,7 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_abo // ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 16, 16, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 8, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); diff --git a/src/tests/integration/resize_right.rs b/src/tests/integration/resize_right.rs index a8dbf5b32..6a11a0e8b 100644 --- a/src/tests/integration/resize_right.rs +++ b/src/tests/integration/resize_right.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -25,7 +25,7 @@ pub fn resize_right_with_pane_to_the_left() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 12, 17]); // split-vertically, resize-right and quit (ctrl-n + ctrl-l + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -50,7 +50,7 @@ pub fn resize_right_with_pane_to_the_right() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 16, 12, 17]); // split-vertically, change-focus resize-right and quit (ctrl-n + ctrl-p + ctrl-l + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -76,7 +76,7 @@ pub fn resize_right_with_panes_to_the_left_and_right() { let mut fake_input_output = get_fake_os_input(&fake_win_size); // split-vertically * 2, change-focus * 2, resize-right and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -104,7 +104,7 @@ pub fn resize_right_with_multiple_panes_to_the_left() { // (ctrl-n + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 16, 2, 16, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -132,7 +132,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -160,7 +160,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -188,7 +188,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2, ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -217,7 +217,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -247,7 +247,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_p // (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -277,7 +277,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_ // (ctrl-b * 2 + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-n + ctrl-p * 2 + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 14, 16, 14, 16, 16, 14, 16, 16, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -308,7 +308,7 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abo // ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -340,7 +340,7 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_ab // ctrl-b * 2 + ctrl-p * 7 + ctrl-k * 2 + ctrl-l + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 11, 11, 11, 14, 16, 16, 16, 14, 16, 16, 14, 16, 16, 2, 2, 16, 16, 16, 16, 16, 16, 16, 11, 11, 12, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); diff --git a/src/tests/integration/resize_up.rs b/src/tests/integration/resize_up.rs index 35bca0b5d..e7a767272 100644 --- a/src/tests/integration/resize_up.rs +++ b/src/tests/integration/resize_up.rs @@ -1,7 +1,7 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::start; +use crate::{start, Opt}; use crate::tests::fakes::{FakeInputOutput}; use crate::tests::utils::get_output_frame_snapshots; @@ -27,7 +27,7 @@ pub fn resize_up_with_pane_above() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 11, 17]); // split-horizontally, resize-up and quit (ctrl-b + ctrl-k + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -54,7 +54,7 @@ pub fn resize_up_with_pane_below() { }; let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 16, 11, 17]); // split-horizontally, change-focus, resize-up and quit (ctrl-b + ctrl-p + ctrl-k + ctrl-q) - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -85,7 +85,7 @@ pub fn resize_up_with_panes_above_and_below() { let mut fake_input_output = get_fake_os_input(&fake_win_size); // split-horizontally * 2, change-focus * 2, resize-up and quit (ctrl-n * 2 + ctrl-p * 2 + ctrl-h + ctrl-q) fake_input_output.add_terminal_input(&[2, 2, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -114,7 +114,7 @@ pub fn resize_up_with_multiple_panes_above() { // (ctrl-b + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[2, 16, 14, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -142,7 +142,7 @@ pub fn resize_up_with_panes_above_aligned_left_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 3, ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -172,7 +172,7 @@ pub fn resize_up_with_panes_below_aligned_left_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p + ctrl-p + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -202,7 +202,7 @@ pub fn resize_up_with_panes_above_aligned_right_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -233,7 +233,7 @@ pub fn resize_up_with_panes_below_aligned_right_with_current_pane() { // (ctrl-n + ctrl-b + ctrl-p + ctrl-b + ctrl-p, ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 2, 16, 2, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -263,7 +263,7 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_current_pane() { // (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -293,7 +293,7 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_current_pane() { // (ctrl-n * 2 + ctrl-b + ctrl-p + ctrl-b + ctrl-p * 2 + ctrl-b + ctrl-p * 2 + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 2, 16, 2, 16, 16, 2, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -324,7 +324,7 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_ // ctrl-n * 2 + ctrl-p * 6 + ctrl-h * 2 + ctrl-p + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 14, 14, 16, 16, 16, 16, 16, 16, 8, 8, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); @@ -356,7 +356,7 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_ri // ctrl-n * 2 + ctrl-p * 2 + ctrl-h * 2 + ctrl-p * 5 + ctrl-k + ctrl-q) fake_input_output.add_terminal_input(&[14, 14, 16, 8, 8, 8, 2, 16, 16, 16, 2, 16, 16, 2, 16, 16, 14, 14, 16, 16, 8, 8, 16, 16, 16, 16, 16, 11, 17]); - start(Box::new(fake_input_output.clone())); + start(Box::new(fake_input_output.clone()), Opt::default()); let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap new file mode 100644 index 000000000..fa8c19b2c --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-10.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ +────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────── +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ +Bye from Mosaic!█ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap new file mode 100644 index 000000000..3d527ead6 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-2.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +a │█ +line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│ +a │ +prompt $ │ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap new file mode 100644 index 000000000..4a2fb1403 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-3.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +a │line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap new file mode 100644 index 000000000..4cd991587 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-4.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +█ │line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + │prompt $ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap new file mode 100644 index 000000000..cc0f4bc6a --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-5.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line1-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line2-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line3-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +────────────────────────────────────────────────────────────┤line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ █ │prompt $ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap new file mode 100644 index 000000000..b0f22d41b --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-6.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ +────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────── +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│█ +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +prompt $ │ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap new file mode 100644 index 000000000..e7d9ee8c7 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-7.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ +────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────── +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ █ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap new file mode 100644 index 000000000..dc96752b2 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-8.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│█ +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│ +prompt $ │ +────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────── +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap new file mode 100644 index 000000000..9dc18e7c8 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes-9.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ █ +────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────── +line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line12-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line13-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line14-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line15-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line16-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line17-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line18-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb│line19-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │prompt $ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap new file mode 100644 index 000000000..3d8b71469 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__basic__max_panes.snap @@ -0,0 +1,24 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot +--- +line1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line2-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line3-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line4-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line5-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line6-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line7-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line8-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line9-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line10-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +prompt $ █