diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-09-30 18:04:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-30 18:04:40 +0200 |
| commit | 9f1e38f9fa6efd166f5205eaa8603d6b05a68b2b (patch) | |
| tree | 3e41bdf65e4bb83fc08f3ad23f913630a97a3d97 /zellij-server/src/plugins/plugin_map.rs | |
| parent | docs(changelog): background plugins (diff) | |
| download | sl0ppij-9f1e38f9fa6efd166f5205eaa8603d6b05a68b2b.tar.gz sl0ppij-9f1e38f9fa6efd166f5205eaa8603d6b05a68b2b.tar.xz sl0ppij-9f1e38f9fa6efd166f5205eaa8603d6b05a68b2b.zip | |
feat(ui): built-in plugin manager (#3633)
* add plugin list to session info
* feat(plugins): new_plugin and reload_plugin API commands
* feat(plugins): built-in plugin manager
* style(fmt): rustfmt
* update plugins
Diffstat (limited to 'zellij-server/src/plugins/plugin_map.rs')
| -rw-r--r-- | zellij-server/src/plugins/plugin_map.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/zellij-server/src/plugins/plugin_map.rs b/zellij-server/src/plugins/plugin_map.rs index c33a6735..3cda4fc1 100644 --- a/zellij-server/src/plugins/plugin_map.rs +++ b/zellij-server/src/plugins/plugin_map.rs @@ -3,7 +3,7 @@ use crate::plugins::PluginId; use bytes::Bytes; use std::io::Write; use std::{ - collections::{HashMap, HashSet, VecDeque}, + collections::{BTreeMap, HashMap, HashSet, VecDeque}, path::PathBuf, sync::{Arc, Mutex}, }; @@ -263,6 +263,24 @@ impl PluginMap { } }) } + pub fn list_plugins(&self) -> BTreeMap<PluginId, RunPlugin> { + let all_plugin_ids: HashSet<PluginId> = self + .all_plugin_ids() + .into_iter() + .map(|(plugin_id, _client_id)| plugin_id) + .collect(); + let mut plugin_ids_to_cmds: BTreeMap<u32, RunPlugin> = BTreeMap::new(); + for plugin_id in all_plugin_ids { + let plugin_cmd = self.run_plugin_of_plugin_id(plugin_id); + match plugin_cmd { + Some(plugin_cmd) => { + plugin_ids_to_cmds.insert(plugin_id, plugin_cmd.clone()); + }, + None => log::error!("Plugin with id: {plugin_id} not found"), + } + } + plugin_ids_to_cmds + } } pub type Subscriptions = HashSet<EventType>; |
