From 650aeb12bed057572cb806e9324647dd35a05e98 Mon Sep 17 00:00:00 2001 From: Yves Biener <56591091+yves-biener@users.noreply.github.com> Date: Tue, 24 Jan 2023 13:51:11 +0100 Subject: feat: add ScrollToTop action (#2110) --- zellij-utils/src/cli.rs | 2 ++ zellij-utils/src/errors.rs | 1 + zellij-utils/src/input/actions.rs | 3 +++ zellij-utils/src/kdl/mod.rs | 4 ++++ 4 files changed, 10 insertions(+) (limited to 'zellij-utils') diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs index 1d62e7d07..82c34eecd 100644 --- a/zellij-utils/src/cli.rs +++ b/zellij-utils/src/cli.rs @@ -216,6 +216,8 @@ pub enum CliAction { ScrollDown, /// Scroll down to bottom in focus pane. ScrollToBottom, + /// Scroll up to top in focus pane. + ScrollToTop, /// Scroll up one page in focus pane. PageScrollUp, /// Scroll down one page in focus pane. diff --git a/zellij-utils/src/errors.rs b/zellij-utils/src/errors.rs index b56bd79a1..50c8f9b28 100644 --- a/zellij-utils/src/errors.rs +++ b/zellij-utils/src/errors.rs @@ -261,6 +261,7 @@ pub enum ScreenContext { ScrollDown, ScrollDownAt, ScrollToBottom, + ScrollToTop, PageScrollUp, PageScrollDown, HalfPageScrollUp, diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs index 7bb13540c..1207023aa 100644 --- a/zellij-utils/src/input/actions.rs +++ b/zellij-utils/src/input/actions.rs @@ -128,6 +128,8 @@ pub enum Action { ScrollDownAt(Position), /// Scroll down to bottom in focus pane. ScrollToBottom, + /// Scroll up to top in focus pane. + ScrollToTop, /// Scroll up one page in focus pane. PageScrollUp, /// Scroll down one page in focus pane. @@ -226,6 +228,7 @@ impl Action { CliAction::ScrollUp => Ok(vec![Action::ScrollUp]), CliAction::ScrollDown => Ok(vec![Action::ScrollDown]), CliAction::ScrollToBottom => Ok(vec![Action::ScrollToBottom]), + CliAction::ScrollToTop => Ok(vec![Action::ScrollToTop]), CliAction::PageScrollUp => Ok(vec![Action::PageScrollUp]), CliAction::PageScrollDown => Ok(vec![Action::PageScrollDown]), CliAction::HalfPageScrollUp => Ok(vec![Action::HalfPageScrollUp]), diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs index db001fb5f..2a81300ca 100644 --- a/zellij-utils/src/kdl/mod.rs +++ b/zellij-utils/src/kdl/mod.rs @@ -43,6 +43,7 @@ macro_rules! parse_kdl_action_arguments { "ScrollUp" => Ok(Action::ScrollUp), "ScrollDown" => Ok(Action::ScrollDown), "ScrollToBottom" => Ok(Action::ScrollToBottom), + "ScrollToTop" => Ok(Action::ScrollToTop), "PageScrollUp" => Ok(Action::PageScrollUp), "PageScrollDown" => Ok(Action::PageScrollDown), "HalfPageScrollUp" => Ok(Action::HalfPageScrollUp), @@ -636,6 +637,9 @@ impl TryFrom<&KdlNode> for Action { "ScrollToBottom" => { parse_kdl_action_arguments!(action_name, action_arguments, kdl_action) }, + "ScrollToTop" => { + parse_kdl_action_arguments!(action_name, action_arguments, kdl_action) + }, "PageScrollUp" => { parse_kdl_action_arguments!(action_name, action_arguments, kdl_action) }, -- cgit v1.2.3