summaryrefslogtreecommitdiffstats
path: root/zellij-utils
diff options
context:
space:
mode:
authorYves Biener <56591091+yves-biener@users.noreply.github.com>2023-01-24 13:51:11 +0100
committerGitHub <noreply@github.com>2023-01-24 21:51:11 +0900
commit650aeb12bed057572cb806e9324647dd35a05e98 (patch)
tree5da0d6d5176f2a9f457c630167d7eb11864c4d8c /zellij-utils
parentbeddfb77a8ef8a5b90db084ad8030d1168f77352 (diff)
feat: add ScrollToTop action (#2110)
Diffstat (limited to 'zellij-utils')
-rw-r--r--zellij-utils/src/cli.rs2
-rw-r--r--zellij-utils/src/errors.rs1
-rw-r--r--zellij-utils/src/input/actions.rs3
-rw-r--r--zellij-utils/src/kdl/mod.rs4
4 files changed, 10 insertions, 0 deletions
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)
},