diff options
Diffstat (limited to 'zellij-server/src/panes')
-rw-r--r-- | zellij-server/src/panes/floating_panes/mod.rs | 25 | ||||
-rw-r--r-- | zellij-server/src/panes/tiled_panes/mod.rs | 28 |
2 files changed, 7 insertions, 46 deletions
diff --git a/zellij-server/src/panes/floating_panes/mod.rs b/zellij-server/src/panes/floating_panes/mod.rs index 572a75629..37e660253 100644 --- a/zellij-server/src/panes/floating_panes/mod.rs +++ b/zellij-server/src/panes/floating_panes/mod.rs @@ -873,28 +873,9 @@ impl FloatingPanes { } } pub fn get_plugin_pane_id(&self, run_plugin_or_alias: &RunPluginOrAlias) -> Option<PaneId> { - match run_plugin_or_alias { - RunPluginOrAlias::RunPlugin(..) => { - let run = Some(Run::Plugin(run_plugin_or_alias.clone())); - self.panes - .iter() - .find(|(_id, s_p)| s_p.invoked_with() == &run) - .map(|(id, _)| *id) - } - RunPluginOrAlias::Alias(plugin_alias) => { - self.panes - .iter() - .find(|(_id, s_p)| { - match s_p.invoked_with() { - // Some(Run::Plugin(RunPluginOrAlias::Alias(pane_alias))) => pane_alias.name == plugin_alias.name, - Some(Run::Plugin(RunPluginOrAlias::Alias(pane_alias))) => pane_alias.name == plugin_alias.name && - pane_alias.configuration.as_ref().and_then(|c| if c.inner().is_empty() { None } else { Some(c)} ) == plugin_alias.configuration.as_ref().and_then(|c| if c.inner().is_empty() { None } else { Some(c) }), - _ => false - } - }) - .map(|(id, _)| *id) - } - } + self.panes.iter() + .find(|(_id, pane)| run_plugin_or_alias.is_equivalent_to_run(pane.invoked_with())) + .map(|(id, _)| *id) } pub fn focus_pane_if_exists(&mut self, pane_id: PaneId, client_id: ClientId) -> Result<()> { if self.panes.get(&pane_id).is_some() { diff --git a/zellij-server/src/panes/tiled_panes/mod.rs b/zellij-server/src/panes/tiled_panes/mod.rs index be973444a..7292644e3 100644 --- a/zellij-server/src/panes/tiled_panes/mod.rs +++ b/zellij-server/src/panes/tiled_panes/mod.rs @@ -1745,30 +1745,10 @@ impl TiledPanes { self.client_id_to_boundaries.clear(); } pub fn get_plugin_pane_id(&self, run_plugin_or_alias: &RunPluginOrAlias) -> Option<PaneId> { - match run_plugin_or_alias { - RunPluginOrAlias::RunPlugin(..) => { - let run = Some(Run::Plugin(run_plugin_or_alias.clone())); - self.panes - .iter() - .find(|(_id, s_p)| s_p.invoked_with() == &run) - .map(|(id, _)| *id) - } - RunPluginOrAlias::Alias(plugin_alias) => { - eprintln!("plugin_alias: {:?}", plugin_alias); - self.panes - .iter() - .find(|(_id, s_p)| { - eprintln!("comparing with: {:?}", s_p.invoked_with()); - match s_p.invoked_with() { - Some(Run::Plugin(RunPluginOrAlias::Alias(pane_alias))) => pane_alias.name == plugin_alias.name && - pane_alias.configuration.as_ref().and_then(|c| if c.inner().is_empty() { None } else { Some(c)} ) == plugin_alias.configuration.as_ref().and_then(|c| if c.inner().is_empty() { None } else { Some(c) }), - // Some(Run::Plugin(RunPluginOrAlias::Alias(pane_alias))) => pane_alias.name == plugin_alias.name && pane_alias.configuration == plugin_alias.configuration, - _ => false - } - }) - .map(|(id, _)| *id) - } - } + self.panes.iter() + .find(|(_id, pane)| run_plugin_or_alias.is_equivalent_to_run(pane.invoked_with())) + .map(|(id, _)| *id) + } pub fn pane_info(&self) -> Vec<PaneInfo> { let mut pane_infos = vec![]; |