summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api/plugin_command.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_command.rs')
-rw-r--r--zellij-utils/src/plugin_api/plugin_command.rs29
1 files changed, 26 insertions, 3 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs
index 080dd9e28..771b61517 100644
--- a/zellij-utils/src/plugin_api/plugin_command.rs
+++ b/zellij-utils/src/plugin_api/plugin_command.rs
@@ -8,9 +8,9 @@ pub use super::generated_api::api::{
FixedOrPercentValue as ProtobufFixedOrPercentValue,
FloatingPaneCoordinates as ProtobufFloatingPaneCoordinates, HttpVerb as ProtobufHttpVerb,
IdAndNewName, KillSessionsPayload, MessageToPluginPayload, MovePayload,
- NewPluginArgs as ProtobufNewPluginArgs, OpenCommandPanePayload, OpenFilePayload,
- PaneId as ProtobufPaneId, PaneType as ProtobufPaneType,
- PluginCommand as ProtobufPluginCommand, PluginMessagePayload,
+ NewPluginArgs as ProtobufNewPluginArgs, NewTabsWithLayoutInfoPayload,
+ OpenCommandPanePayload, OpenFilePayload, PaneId as ProtobufPaneId,
+ PaneType as ProtobufPaneType, PluginCommand as ProtobufPluginCommand, PluginMessagePayload,
RequestPluginPermissionPayload, ResizePayload, RunCommandPayload, SetTimeoutPayload,
SubscribePayload, SwitchSessionPayload, SwitchTabToPayload, UnsubscribePayload,
WebRequestPayload,
@@ -875,6 +875,19 @@ impl TryFrom<ProtobufPluginCommand> for PluginCommand {
Some(_) => Err("CloseSelf should have no payload, found a payload"),
None => Ok(PluginCommand::CloseSelf),
},
+ Some(CommandName::NewTabsWithLayoutInfo) => match protobuf_plugin_command.payload {
+ Some(Payload::NewTabsWithLayoutInfoPayload(new_tabs_with_layout_info_payload)) => {
+ new_tabs_with_layout_info_payload
+ .layout_info
+ .and_then(|layout_info| {
+ Some(PluginCommand::NewTabsWithLayoutInfo(
+ layout_info.try_into().ok()?,
+ ))
+ })
+ .ok_or("Failed to parse NewTabsWithLayoutInfo command")
+ },
+ _ => Err("Mismatched payload for NewTabsWithLayoutInfo"),
+ },
None => Err("Unrecognized plugin command"),
}
}
@@ -1397,6 +1410,16 @@ impl TryFrom<PluginCommand> for ProtobufPluginCommand {
name: CommandName::CloseSelf as i32,
payload: None,
}),
+ PluginCommand::NewTabsWithLayoutInfo(new_tabs_with_layout_info_payload) => {
+ Ok(ProtobufPluginCommand {
+ name: CommandName::NewTabsWithLayoutInfo as i32,
+ payload: Some(Payload::NewTabsWithLayoutInfoPayload(
+ NewTabsWithLayoutInfoPayload {
+ layout_info: new_tabs_with_layout_info_payload.try_into().ok(),
+ },
+ )),
+ })
+ },
}
}
}