From fad088a86843ccf38a7f3b020ae9b93bef25b4a7 Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Wed, 21 Apr 2021 14:27:58 +0900 Subject: [PATCH 1/6] add scroll page --- src/client/tab.rs | 24 ++++++++++++++++++++++++ src/common/errors.rs | 4 ++++ src/common/input/actions.rs | 4 ++++ src/common/input/handler.rs | 10 ++++++++++ src/common/input/keybinds.rs | 5 +++++ src/common/mod.rs | 12 ++++++++++++ src/common/screen.rs | 2 ++ 7 files changed, 61 insertions(+) diff --git a/src/client/tab.rs b/src/client/tab.rs index 8750589f..c9c116d8 100644 --- a/src/client/tab.rs +++ b/src/client/tab.rs @@ -2171,6 +2171,30 @@ impl Tab { self.render(); } } + pub fn scroll_active_terminal_up_page(&mut self) { + if let Some(active_terminal_id) = self.get_active_terminal_id() { + let active_terminal = self + .panes + .get_mut(&PaneId::Terminal(active_terminal_id)) + .unwrap(); + // prevent overflow when row == 0 + let scroll_columns = active_terminal.rows().max(1) - 1; + active_terminal.scroll_up(scroll_columns); + self.render(); + } + } + pub fn scroll_active_terminal_down_page(&mut self) { + if let Some(active_terminal_id) = self.get_active_terminal_id() { + let active_terminal = self + .panes + .get_mut(&PaneId::Terminal(active_terminal_id)) + .unwrap(); + // prevent overflow when row == 0 + let scroll_columns = active_terminal.rows().max(1) - 1; + active_terminal.scroll_down(scroll_columns); + self.render(); + } + } pub fn clear_active_terminal_scroll(&mut self) { if let Some(active_terminal_id) = self.get_active_terminal_id() { let active_terminal = self diff --git a/src/common/errors.rs b/src/common/errors.rs index d0b748ab..dd675738 100644 --- a/src/common/errors.rs +++ b/src/common/errors.rs @@ -196,6 +196,8 @@ pub enum ScreenContext { Quit, ScrollUp, ScrollDown, + PageScrollUp, + PageScrollDown, ClearScroll, CloseFocusedPane, ToggleActiveTerminalFullscreen, @@ -238,6 +240,8 @@ impl From<&ScreenInstruction> for ScreenContext { ScreenInstruction::Quit => ScreenContext::Quit, ScreenInstruction::ScrollUp => ScreenContext::ScrollUp, ScreenInstruction::ScrollDown => ScreenContext::ScrollDown, + ScreenInstruction::PageScrollUp => ScreenContext::PageScrollUp, + ScreenInstruction::PageScrollDown => ScreenContext::PageScrollDown, ScreenInstruction::ClearScroll => ScreenContext::ClearScroll, ScreenInstruction::CloseFocusedPane => ScreenContext::CloseFocusedPane, ScreenInstruction::ToggleActiveTerminalFullscreen => { diff --git a/src/common/input/actions.rs b/src/common/input/actions.rs index 47a5f763..3bcadf15 100644 --- a/src/common/input/actions.rs +++ b/src/common/input/actions.rs @@ -33,6 +33,10 @@ pub enum Action { ScrollUp, /// Scroll down in focus pane. ScrollDown, + /// Scroll up one page in focus pane. + PageScrollUp, + /// Scroll down one page in focus pane. + PageScrollDown, /// Toggle between fullscreen focus pane and normal layout. ToggleFocusFullscreen, /// Open a new pane in the specified direction (relative to focus). diff --git a/src/common/input/handler.rs b/src/common/input/handler.rs index 0afcab10..1ff52243 100644 --- a/src/common/input/handler.rs +++ b/src/common/input/handler.rs @@ -184,6 +184,16 @@ impl InputHandler { .send(ScreenInstruction::ScrollDown) .unwrap(); } + Action::PageScrollUp => { + self.send_screen_instructions + .send(ScreenInstruction::PageScrollUp) + .unwrap(); + } + Action::PageScrollDown => { + self.send_screen_instructions + .send(ScreenInstruction::PageScrollDown) + .unwrap(); + } Action::ToggleFocusFullscreen => { self.send_screen_instructions .send(ScreenInstruction::ToggleActiveTerminalFullscreen) diff --git a/src/common/input/keybinds.rs b/src/common/input/keybinds.rs index 6239475e..8e04c44a 100644 --- a/src/common/input/keybinds.rs +++ b/src/common/input/keybinds.rs @@ -340,6 +340,11 @@ impl Keybinds { defaults.insert(Key::Char('j'), vec![Action::ScrollDown]); defaults.insert(Key::Char('k'), vec![Action::ScrollUp]); + defaults.insert(Key::Ctrl('f'), vec![Action::PageScrollDown]); + defaults.insert(Key::Ctrl('b'), vec![Action::PageScrollUp]); + defaults.insert(Key::PageDown, vec![Action::PageScrollDown]); + defaults.insert(Key::PageUp, vec![Action::PageScrollUp]); + defaults.insert(Key::Down, vec![Action::ScrollDown]); defaults.insert(Key::Up, vec![Action::ScrollUp]); diff --git a/src/common/mod.rs b/src/common/mod.rs index 860d12db..8b2740c4 100644 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -366,6 +366,18 @@ pub fn start(mut os_input: Box, opts: CliArgs) { .unwrap() .scroll_active_terminal_down(); } + ScreenInstruction::PageScrollUp => { + screen + .get_active_tab_mut() + .unwrap() + .scroll_active_terminal_up_page(); + } + ScreenInstruction::PageScrollDown => { + screen + .get_active_tab_mut() + .unwrap() + .scroll_active_terminal_down_page(); + } ScreenInstruction::ClearScroll => { screen .get_active_tab_mut() diff --git a/src/common/screen.rs b/src/common/screen.rs index 01ac04fc..a2f41574 100644 --- a/src/common/screen.rs +++ b/src/common/screen.rs @@ -38,6 +38,8 @@ pub enum ScreenInstruction { Quit, ScrollUp, ScrollDown, + PageScrollUp, + PageScrollDown, ClearScroll, CloseFocusedPane, ToggleActiveTerminalFullscreen, From 1ed408db869a92ac96605576516840d9d180bc30 Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Wed, 21 Apr 2021 14:51:52 +0900 Subject: [PATCH 2/6] update default config --- example/default.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/example/default.yaml b/example/default.yaml index 4950b864..98289e69 100644 --- a/example/default.yaml +++ b/example/default.yaml @@ -174,6 +174,10 @@ keybinds: key: [Char: 'j', Down,] - action: [ScrollUp,] key: [Char: 'k', Up,] + - action: [PageScrollDown,] + key: [Ctrl: 'f', PageDown,] + - action: [PageScrollUp,] + key: [Ctrl: 'b', PageUp,] - action: [NewPane: ,] key: [ Alt: 'n',] - action: [MoveFocus: Left,] From 77bbf73c83e41ce9856809d60ce72639e2702d3b Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Wed, 21 Apr 2021 15:02:51 +0900 Subject: [PATCH 3/6] cargo fmt --- src/client/tab.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/tab.rs b/src/client/tab.rs index c9c116d8..4589796a 100644 --- a/src/client/tab.rs +++ b/src/client/tab.rs @@ -2178,7 +2178,7 @@ impl Tab { .get_mut(&PaneId::Terminal(active_terminal_id)) .unwrap(); // prevent overflow when row == 0 - let scroll_columns = active_terminal.rows().max(1) - 1; + let scroll_columns = active_terminal.rows().max(1) - 1; active_terminal.scroll_up(scroll_columns); self.render(); } @@ -2190,7 +2190,7 @@ impl Tab { .get_mut(&PaneId::Terminal(active_terminal_id)) .unwrap(); // prevent overflow when row == 0 - let scroll_columns = active_terminal.rows().max(1) - 1; + let scroll_columns = active_terminal.rows().max(1) - 1; active_terminal.scroll_down(scroll_columns); self.render(); } From 9d8fbd2424a12fff085e0e8848793eecc514e9c7 Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Wed, 21 Apr 2021 15:30:02 +0900 Subject: [PATCH 4/6] add tests --- src/tests/integration/basic.rs | 63 +++++++++++++++++++ ...ic__scrolling_page_down_inside_a_pane.snap | 25 ++++++++ ...asic__scrolling_page_up_inside_a_pane.snap | 25 ++++++++ src/tests/utils.rs | 2 + 4 files changed, 115 insertions(+) create mode 100644 src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap create mode 100644 src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index 377e25b2..55cea49f 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -4,6 +4,7 @@ use ::insta::assert_snapshot; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::commands::{ PANE_MODE, QUIT, SCROLL_DOWN_IN_SCROLL_MODE, SCROLL_MODE, SCROLL_UP_IN_SCROLL_MODE, + SCROLL_PAGE_DOWN_IN_SCROLL_MODE, SCROLL_PAGE_UP_IN_SCROLL_MODE, SPAWN_TERMINAL_IN_PANE_MODE, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, }; @@ -237,6 +238,68 @@ pub fn scrolling_down_inside_a_pane() { assert_snapshot!(snapshot_before_quit); } +#[test] +pub fn scrolling_page_up_inside_a_pane() { + let fake_win_size = PositionAndSize { + columns: 121, + rows: 20, + x: 0, + y: 0, + }; + let mut fake_input_output = get_fake_os_input(&fake_win_size); + fake_input_output.add_terminal_input(&[ + &PANE_MODE, + &SPLIT_DOWN_IN_PANE_MODE, + &SPLIT_RIGHT_IN_PANE_MODE, + &SCROLL_MODE, + &SCROLL_PAGE_UP_IN_SCROLL_MODE, + &QUIT, + ]); + start(Box::new(fake_input_output.clone()), CliArgs::default()); + let output_frames = fake_input_output + .stdout_writer + .output_frames + .lock() + .unwrap(); + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + let snapshot_before_quit = + get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); + assert_snapshot!(snapshot_before_quit); +} + +#[test] +pub fn scrolling_page_down_inside_a_pane() { + let fake_win_size = PositionAndSize { + columns: 121, + rows: 20, + x: 0, + y: 0, + }; + let mut fake_input_output = get_fake_os_input(&fake_win_size); + fake_input_output.add_terminal_input(&[ + &PANE_MODE, + &SPLIT_DOWN_IN_PANE_MODE, + &SPLIT_RIGHT_IN_PANE_MODE, + &SCROLL_MODE, + &SCROLL_PAGE_UP_IN_SCROLL_MODE, + &SCROLL_PAGE_UP_IN_SCROLL_MODE, + &SCROLL_PAGE_DOWN_IN_SCROLL_MODE, + &SCROLL_PAGE_DOWN_IN_SCROLL_MODE, + &QUIT, + ]); + start(Box::new(fake_input_output.clone()), CliArgs::default()); + let output_frames = fake_input_output + .stdout_writer + .output_frames + .lock() + .unwrap(); + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + let snapshot_before_quit = + get_next_to_last_snapshot(snapshots).expect("could not find snapshot"); + assert_snapshot!(snapshot_before_quit); +} + + #[test] pub fn max_panes() { // with the --max-panes option, we only allow a certain amount of panes on screen diff --git a/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap new file mode 100644 index 00000000..8f4ec6e2 --- /dev/null +++ b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_down_inside_a_pane.snap @@ -0,0 +1,25 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot_before_quit + +--- +line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +prompt $ +────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── +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/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap new file mode 100644 index 00000000..d37580c6 --- /dev/null +++ b/src/tests/integration/snapshots/zellij__tests__integration__basic__scrolling_page_up_inside_a_pane.snap @@ -0,0 +1,25 @@ +--- +source: src/tests/integration/basic.rs +expression: snapshot_before_quit + +--- +line11-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line12-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line13-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line14-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line15-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line16-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line17-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +prompt $ +────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────── +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line4-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line5-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line18-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line6-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line7-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line8-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +line19-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line9-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│line10-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +a │line11-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +prompt $ │line12-bb█bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb diff --git a/src/tests/utils.rs b/src/tests/utils.rs index a58e8610..aa622fe7 100644 --- a/src/tests/utils.rs +++ b/src/tests/utils.rs @@ -63,6 +63,8 @@ pub mod commands { pub const SCROLL_MODE: [u8; 1] = [19]; // ctrl-s pub const SCROLL_UP_IN_SCROLL_MODE: [u8; 1] = [107]; // k pub const SCROLL_DOWN_IN_SCROLL_MODE: [u8; 1] = [106]; // j + pub const SCROLL_PAGE_UP_IN_SCROLL_MODE: [u8; 1] = [2]; // ctrl-b + pub const SCROLL_PAGE_DOWN_IN_SCROLL_MODE: [u8; 1] = [6]; // ctrl-f pub const RESIZE_MODE: [u8; 1] = [18]; // ctrl-r pub const RESIZE_DOWN_IN_RESIZE_MODE: [u8; 1] = [106]; // j From 4590fb474e2115e26c35852eb5fc82a44882ffd8 Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Wed, 21 Apr 2021 15:31:04 +0900 Subject: [PATCH 5/6] cargo fmt --- src/tests/integration/basic.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index 55cea49f..e57f8c75 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -3,9 +3,9 @@ use ::insta::assert_snapshot; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::commands::{ - PANE_MODE, QUIT, SCROLL_DOWN_IN_SCROLL_MODE, SCROLL_MODE, SCROLL_UP_IN_SCROLL_MODE, - SCROLL_PAGE_DOWN_IN_SCROLL_MODE, SCROLL_PAGE_UP_IN_SCROLL_MODE, - SPAWN_TERMINAL_IN_PANE_MODE, SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, + PANE_MODE, QUIT, SCROLL_DOWN_IN_SCROLL_MODE, SCROLL_MODE, SCROLL_PAGE_DOWN_IN_SCROLL_MODE, + SCROLL_PAGE_UP_IN_SCROLL_MODE, SCROLL_UP_IN_SCROLL_MODE, SPAWN_TERMINAL_IN_PANE_MODE, + SPLIT_DOWN_IN_PANE_MODE, SPLIT_RIGHT_IN_PANE_MODE, TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE, }; use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots}; @@ -299,7 +299,6 @@ pub fn scrolling_page_down_inside_a_pane() { assert_snapshot!(snapshot_before_quit); } - #[test] pub fn max_panes() { // with the --max-panes option, we only allow a certain amount of panes on screen From a5b04e92f945809fea9f7dbed425b9d94dce8fbe Mon Sep 17 00:00:00 2001 From: Hongjie Zhai Date: Thu, 22 Apr 2021 07:07:04 +0900 Subject: [PATCH 6/6] add PGUP/PGDN to help info --- src/common/input/handler.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/input/handler.rs b/src/common/input/handler.rs index 1ff52243..8abb2a0f 100644 --- a/src/common/input/handler.rs +++ b/src/common/input/handler.rs @@ -303,6 +303,7 @@ pub fn get_mode_info(mode: InputMode) -> ModeInfo { } InputMode::Scroll => { keybinds.push(("↓↑".to_string(), "Scroll".to_string())); + keybinds.push(("PGUP/PGDN".to_string(), "Scroll Page".to_string())); } InputMode::RenameTab => { keybinds.push(("Enter".to_string(), "when done".to_string()));