diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-11-08 16:27:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-08 16:27:15 +0100 |
| commit | 452effab8fdc86486e110ea158d7287d13d0f6ea (patch) | |
| tree | dc488a0f8e48edf0b20537d8cec6af9f38c14afc /zellij-server/src/plugins/plugin_loader.rs | |
| parent | docs(changelog): refix ctrl-j (diff) | |
| download | sl0ppij-452effab8fdc86486e110ea158d7287d13d0f6ea.tar.gz sl0ppij-452effab8fdc86486e110ea158d7287d13d0f6ea.tar.xz sl0ppij-452effab8fdc86486e110ea158d7287d13d0f6ea.zip | |
fix(plugins): cwd and usability fixes (#3749)
* fix(plugins): maintain cwd between plugin reloads
* fix(plugin-manager): default to loading plugins in the foreground and allow sending space in configuration
Diffstat (limited to 'zellij-server/src/plugins/plugin_loader.rs')
| -rw-r--r-- | zellij-server/src/plugins/plugin_loader.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/zellij-server/src/plugins/plugin_loader.rs b/zellij-server/src/plugins/plugin_loader.rs index 654cc55b..32d26dd3 100644 --- a/zellij-server/src/plugins/plugin_loader.rs +++ b/zellij-server/src/plugins/plugin_loader.rs @@ -109,7 +109,7 @@ impl<'a> PluginLoader<'a> { engine, &plugin_dir, path_to_default_shell, - zellij_cwd, + Some(zellij_cwd), capabilities, client_attributes, default_shell, @@ -275,7 +275,6 @@ impl<'a> PluginLoader<'a> { connected_clients: Arc<Mutex<Vec<ClientId>>>, loading_indication: &mut LoadingIndication, path_to_default_shell: PathBuf, - zellij_cwd: PathBuf, capabilities: PluginCapabilities, client_attributes: ClientAttributes, default_shell: Option<TerminalAction>, @@ -301,7 +300,7 @@ impl<'a> PluginLoader<'a> { engine, &plugin_dir, path_to_default_shell, - zellij_cwd, + None, capabilities, client_attributes, default_shell, @@ -382,7 +381,7 @@ impl<'a> PluginLoader<'a> { engine: Engine, plugin_dir: &'a PathBuf, path_to_default_shell: PathBuf, - zellij_cwd: PathBuf, + cwd: Option<PathBuf>, capabilities: PluginCapabilities, client_attributes: ClientAttributes, default_shell: Option<TerminalAction>, @@ -405,6 +404,10 @@ impl<'a> PluginLoader<'a> { let keybinds = running_plugin.store.data().keybinds.clone(); let default_mode = running_plugin.store.data().default_mode; let plugin_config = running_plugin.store.data().plugin.clone(); + // prefer the explicitly given cwd, otherwise copy it from the running plugin + // (when reloading a plugin, we want to copy it, when starting a new plugin instance from + // meomory, we want to reset it) + let zellij_cwd = cwd.unwrap_or_else(|| running_plugin.store.data().plugin_cwd.clone()); loading_indication.set_name(running_plugin.store.data().name()); PluginLoader::new( plugin_cache, |
