diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-07-29 11:40:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-29 11:40:01 +0200 |
| commit | 355463383a18fb9e54afd62d718bed4c085a766f (patch) | |
| tree | 7cf187d4e122133711b45aa249a7e19dc59e1f4f /default-plugins | |
| parent | docs(changelog): more plugin apis (diff) | |
| download | sl0ppij-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.rs | 42 | ||||
| -rw-r--r-- | default-plugins/status-bar/src/one_line_ui.rs | 8 | ||||
| -rw-r--r-- | default-plugins/status-bar/src/second_line.rs | 12 | ||||
| -rw-r--r-- | default-plugins/status-bar/src/tip/data/quicknav.rs | 2 | ||||
| -rw-r--r-- | default-plugins/strider/src/state.rs | 3 |
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 { |
