aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/plugins/plugin_map.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2024-09-30 18:04:40 +0200
committerGitHub <noreply@github.com>2024-09-30 18:04:40 +0200
commit9f1e38f9fa6efd166f5205eaa8603d6b05a68b2b (patch)
tree3e41bdf65e4bb83fc08f3ad23f913630a97a3d97 /zellij-server/src/plugins/plugin_map.rs
parentdocs(changelog): background plugins (diff)
downloadsl0ppij-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.rs20
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>;