aboutsummaryrefslogtreecommitdiffstats
path: root/default-plugins
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2024-07-29 11:40:01 +0200
committerGitHub <noreply@github.com>2024-07-29 11:40:01 +0200
commit355463383a18fb9e54afd62d718bed4c085a766f (patch)
tree7cf187d4e122133711b45aa249a7e19dc59e1f4f /default-plugins
parentdocs(changelog): more plugin apis (diff)
downloadsl0ppij-355463383a18fb9e54afd62d718bed4c085a766f.tar.gz
sl0ppij-355463383a18fb9e54afd62d718bed4c085a766f.tar.xz
sl0ppij-355463383a18fb9e54afd62d718bed4c085a766f.zip
feat(plugins): allow opening command panes in the background (hidden) (#3530)
* start background pane * open command and edit panes in the background * some cleanups * style(fmt): rustfmt * more cleanups
Diffstat (limited to 'default-plugins')
-rw-r--r--default-plugins/fixture-plugin-for-tests/src/main.rs42
-rw-r--r--default-plugins/status-bar/src/one_line_ui.rs8
-rw-r--r--default-plugins/status-bar/src/second_line.rs12
-rw-r--r--default-plugins/status-bar/src/tip/data/quicknav.rs2
-rw-r--r--default-plugins/strider/src/state.rs3
5 files changed, 46 insertions, 21 deletions
diff --git a/default-plugins/fixture-plugin-for-tests/src/main.rs b/default-plugins/fixture-plugin-for-tests/src/main.rs
index 89af6573..70bd2966 100644
--- a/default-plugins/fixture-plugin-for-tests/src/main.rs
+++ b/default-plugins/fixture-plugin-for-tests/src/main.rs
@@ -166,10 +166,13 @@ impl ZellijPlugin for State {
start_or_reload_plugin(plugin_url)
},
BareKey::Char('g') if key.has_modifiers(&[KeyModifier::Ctrl]) => {
- open_file(FileToOpen {
- path: std::path::PathBuf::from("/path/to/my/file.rs"),
- ..Default::default()
- });
+ open_file(
+ FileToOpen {
+ path: std::path::PathBuf::from("/path/to/my/file.rs"),
+ ..Default::default()
+ },
+ BTreeMap::new(),
+ );
},
BareKey::Char('h') if key.has_modifiers(&[KeyModifier::Ctrl]) => {
open_file_floating(
@@ -178,14 +181,18 @@ impl ZellijPlugin for State {
..Default::default()
},
None,
+ BTreeMap::new(),
);
},
BareKey::Char('i') if key.has_modifiers(&[KeyModifier::Ctrl]) => {
- open_file(FileToOpen {
- path: std::path::PathBuf::from("/path/to/my/file.rs"),
- line_number: Some(42),
- ..Default::default()
- });
+ open_file(
+ FileToOpen {
+ path: std::path::PathBuf::from("/path/to/my/file.rs"),
+ line_number: Some(42),
+ ..Default::default()
+ },
+ BTreeMap::new(),
+ );
},
BareKey::Char('j') if key.has_modifiers(&[KeyModifier::Ctrl]) => {
open_file_floating(
@@ -195,6 +202,7 @@ impl ZellijPlugin for State {
..Default::default()
},
None,
+ BTreeMap::new(),
);
},
BareKey::Char('k') if key.has_modifiers(&[KeyModifier::Ctrl]) => {
@@ -335,6 +343,22 @@ impl ZellijPlugin for State {
.to_owned(),
);
},
+ BareKey::Char('a') if key.has_modifiers(&[KeyModifier::Alt]) => {
+ hide_pane_with_id(PaneId::Terminal(1));
+ },
+ BareKey::Char('b') if key.has_modifiers(&[KeyModifier::Alt]) => {
+ show_pane_with_id(PaneId::Terminal(1), true);
+ },
+ BareKey::Char('c') if key.has_modifiers(&[KeyModifier::Alt]) => {
+ open_command_pane_background(
+ CommandToRun {
+ path: std::path::PathBuf::from("/path/to/my/file.rs"),
+ args: vec!["arg1".to_owned(), "arg2".to_owned()],
+ ..Default::default()
+ },
+ BTreeMap::new(),
+ );
+ },
_ => {},
},
Event::CustomMessage(message, payload) => {
diff --git a/default-plugins/status-bar/src/one_line_ui.rs b/default-plugins/status-bar/src/one_line_ui.rs
index 7e3b8a4d..8d1227af 100644
--- a/default-plugins/status-bar/src/one_line_ui.rs
+++ b/default-plugins/status-bar/src/one_line_ui.rs
@@ -677,7 +677,7 @@ fn secondary_keybinds(help: &ModeInfo, tab_info: Option<&TabInfo>, max_len: usiz
let mut secondary_info = LinePart::default();
let binds = &help.get_mode_keybinds();
// New Pane
- let new_pane_action_key = action_key(binds, &[Action::NewPane(None, None)]);
+ let new_pane_action_key = action_key(binds, &[Action::NewPane(None, None, false)]);
let mut new_pane_key_to_display = new_pane_action_key
.iter()
.find(|k| k.is_key_with_alt_modifier(BareKey::Char('n')))
@@ -1163,7 +1163,7 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec<KeyWithModifier
}
if mi.mode == IM::Pane { vec![
- (s("New"), s("New"), single_action_key(&km, &[A::NewPane(None, None), TO_NORMAL])),
+ (s("New"), s("New"), single_action_key(&km, &[A::NewPane(None, None, false), TO_NORMAL])),
(s("Change Focus"), s("Move"),
action_key_group(&km, &[&[A::MoveFocus(Dir::Left)], &[A::MoveFocus(Dir::Down)],
&[A::MoveFocus(Dir::Up)], &[A::MoveFocus(Dir::Right)]])),
@@ -1271,8 +1271,8 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec<KeyWithModifier
(s("Move focus"), s("Move"), action_key_group(&km, &[
&[A::MoveFocus(Dir::Left)], &[A::MoveFocus(Dir::Down)],
&[A::MoveFocus(Dir::Up)], &[A::MoveFocus(Dir::Right)]])),
- (s("Split down"), s("Down"), action_key(&km, &[A::NewPane(Some(Dir::Down), None), TO_NORMAL])),
- (s("Split right"), s("Right"), action_key(&km, &[A::NewPane(Some(Dir::Right), None), TO_NORMAL])),
+ (s("Split down"), s("Down"), action_key(&km, &[A::NewPane(Some(Dir::Down), None, false), TO_NORMAL])),
+ (s("Split right"), s("Right"), action_key(&km, &[A::NewPane(Some(Dir::Right), None, false), TO_NORMAL])),
(s("Fullscreen"), s("Fullscreen"), action_key(&km, &[A::ToggleFocusFullscreen, TO_NORMAL])),
(s("New tab"), s("New"), action_key(&km, &[A::NewTab(None, vec![], None, None, None), TO_NORMAL])),
(s("Rename tab"), s("Rename"),
diff --git a/default-plugins/status-bar/src/second_line.rs b/default-plugins/status-bar/src/second_line.rs
index 63730aa4..5b686d94 100644
--- a/default-plugins/status-bar/src/second_line.rs
+++ b/default-plugins/status-bar/src/second_line.rs
@@ -149,7 +149,7 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec<KeyWithModifier
}
if mi.mode == IM::Pane { vec![
- (s("New"), s("New"), action_key(&km, &[A::NewPane(None, None), TO_NORMAL])),
+ (s("New"), s("New"), action_key(&km, &[A::NewPane(None, None, false), TO_NORMAL])),
(s("Change Focus"), s("Move"),
action_key_group(&km, &[&[A::MoveFocus(Dir::Left)], &[A::MoveFocus(Dir::Down)],
&[A::MoveFocus(Dir::Up)], &[A::MoveFocus(Dir::Right)]])),
@@ -256,8 +256,8 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec<KeyWithModifier
(s("Move focus"), s("Move"), action_key_group(&km, &[
&[A::MoveFocus(Dir::Left)], &[A::MoveFocus(Dir::Down)],
&[A::MoveFocus(Dir::Up)], &[A::MoveFocus(Dir::Right)]])),
- (s("Split down"), s("Down"), action_key(&km, &[A::NewPane(Some(Dir::Down), None), TO_NORMAL])),
- (s("Split right"), s("Right"), action_key(&km, &[A::NewPane(Some(Dir::Right), None), TO_NORMAL])),
+ (s("Split down"), s("Down"), action_key(&km, &[A::NewPane(Some(Dir::Down), None, false), TO_NORMAL])),
+ (s("Split right"), s("Right"), action_key(&km, &[A::NewPane(Some(Dir::Right), None, false), TO_NORMAL])),
(s("Fullscreen"), s("Fullscreen"), action_key(&km, &[A::ToggleFocusFullscreen, TO_NORMAL])),
(s("New tab"), s("New"), action_key(&km, &[A::NewTab(None, vec![], None, None, None), TO_NORMAL])),
(s("Rename tab"), s("Rename"),
@@ -713,7 +713,7 @@ mod tests {
),
(
KeyWithModifier::new(BareKey::Char('n')),
- vec![Action::NewPane(None, None), TO_NORMAL],
+ vec![Action::NewPane(None, None, false), TO_NORMAL],
),
(
KeyWithModifier::new(BareKey::Char('x')),
@@ -763,7 +763,7 @@ mod tests {
),
(
KeyWithModifier::new(BareKey::Char('n')),
- vec![Action::NewPane(None, None), TO_NORMAL],
+ vec![Action::NewPane(None, None, false), TO_NORMAL],
),
(
KeyWithModifier::new(BareKey::Char('x')),
@@ -809,7 +809,7 @@ mod tests {
),
(
KeyWithModifier::new(BareKey::Backspace),
- vec![Action::NewPane(None, None), TO_NORMAL],
+ vec![Action::NewPane(None, None, false), TO_NORMAL],
),
(
KeyWithModifier::new(BareKey::Esc),
diff --git a/default-plugins/status-bar/src/tip/data/quicknav.rs b/default-plugins/status-bar/src/tip/data/quicknav.rs
index 9d66754e..ef83bbd7 100644
--- a/default-plugins/status-bar/src/tip/data/quicknav.rs
+++ b/default-plugins/status-bar/src/tip/data/quicknav.rs
@@ -62,7 +62,7 @@ struct Keygroups<'a> {
fn add_keybinds(help: &ModeInfo) -> Keygroups {
let normal_keymap = help.get_mode_keybinds();
- let new_pane_keys = action_key(&normal_keymap, &[Action::NewPane(None, None)]);
+ let new_pane_keys = action_key(&normal_keymap, &[Action::NewPane(None, None, false)]);
let new_pane = if new_pane_keys.is_empty() {
vec![Style::new().bold().paint("UNBOUND")]
} else {
diff --git a/default-plugins/strider/src/state.rs b/default-plugins/strider/src/state.rs
index 4b81c7f2..87f70d4b 100644
--- a/default-plugins/strider/src/state.rs
+++ b/default-plugins/strider/src/state.rs
@@ -152,9 +152,10 @@ impl State {
if let Some(parent_folder) = self.file_list_view.path.parent() {
open_file(
FileToOpen::new(&self.file_list_view.path).with_cwd(parent_folder.into()),
+ BTreeMap::new(),
);
} else {
- open_file(FileToOpen::new(&self.file_list_view.path));
+ open_file(FileToOpen::new(&self.file_list_view.path), BTreeMap::new());
}
}
if self.close_on_selection {