diff options
| author | Aram Drevekenin <aram@poor.dev> | 2025-07-08 11:06:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-08 11:06:03 +0200 |
| commit | 358caa180ce7c60b8923caa98cf339f897d14feb (patch) | |
| tree | bb14df05b46d907a7af55ae98095abd8e9f4e7b4 /zellij-utils/src/plugin_api/plugin_command.rs | |
| parent | fix(plugins): use the terminal title when spawning terminals (#4272) (diff) | |
| download | sl0ppij-358caa180ce7c60b8923caa98cf339f897d14feb.tar.gz sl0ppij-358caa180ce7c60b8923caa98cf339f897d14feb.tar.xz sl0ppij-358caa180ce7c60b8923caa98cf339f897d14feb.zip | |
fix(tabs): allow setting cwd without a layout (#4273)
* working for cli and keybinding
* working for plugin API
* style(fmt): rustfmt
* docs(changelog): add PR
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_command.rs')
| -rw-r--r-- | zellij-utils/src/plugin_api/plugin_command.rs | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs index 296a8a74..073284bc 100644 --- a/zellij-utils/src/plugin_api/plugin_command.rs +++ b/zellij-utils/src/plugin_api/plugin_command.rs @@ -16,7 +16,7 @@ pub use super::generated_api::api::{ HttpVerb as ProtobufHttpVerb, IdAndNewName, KeyToRebind, KeyToUnbind, KillSessionsPayload, ListTokensResponse, LoadNewPluginPayload, MessageToPluginPayload, MovePaneWithPaneIdInDirectionPayload, MovePaneWithPaneIdPayload, MovePayload, - NewPluginArgs as ProtobufNewPluginArgs, NewTabsWithLayoutInfoPayload, + NewPluginArgs as ProtobufNewPluginArgs, NewTabPayload, NewTabsWithLayoutInfoPayload, OpenCommandPaneFloatingNearPluginPayload, OpenCommandPaneInPlaceOfPluginPayload, OpenCommandPaneNearPluginPayload, OpenCommandPanePayload, OpenFileFloatingNearPluginPayload, OpenFileInPlaceOfPluginPayload, @@ -474,11 +474,18 @@ impl TryFrom<ProtobufPluginCommand> for PluginCommand { }, _ => Err("Mismatched payload for NewTabsWithLayout"), }, - Some(CommandName::NewTab) => { - if protobuf_plugin_command.payload.is_some() { - return Err("NewTab should not have a payload"); - } - Ok(PluginCommand::NewTab) + Some(CommandName::NewTab) => match protobuf_plugin_command.payload { + Some(Payload::NewTabPayload(protobuf_new_tab_payload)) => { + Ok(PluginCommand::NewTab { + name: protobuf_new_tab_payload.name, + cwd: protobuf_new_tab_payload.cwd, + }) + }, + None => Ok(PluginCommand::NewTab { + name: None, + cwd: None, + }), + _ => Err("Mismatched payload for NewTab"), }, Some(CommandName::GoToNextTab) => { if protobuf_plugin_command.payload.is_some() { @@ -1886,9 +1893,9 @@ impl TryFrom<PluginCommand> for ProtobufPluginCommand { name: CommandName::NewTabsWithLayout as i32, payload: Some(Payload::NewTabsWithLayoutPayload(raw_layout)), }), - PluginCommand::NewTab => Ok(ProtobufPluginCommand { + PluginCommand::NewTab { name, cwd } => Ok(ProtobufPluginCommand { name: CommandName::NewTab as i32, - payload: None, + payload: Some(Payload::NewTabPayload(NewTabPayload { name, cwd })), }), PluginCommand::GoToNextTab => Ok(ProtobufPluginCommand { name: CommandName::GoToNextTab as i32, |
