diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-12-31 12:37:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-31 12:37:23 +0100 |
| commit | 42adc8cd048c03d52a9f33503d75e24364adbc68 (patch) | |
| tree | 943ee11e188e6512b336b603bdd5ea8eae38998b /zellij-utils/src/plugin_api/plugin_command.rs | |
| parent | docs(changelog): cursor overflow fix (diff) | |
| download | sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.tar.gz sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.tar.xz sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.zip | |
feat(ux): stack panes command (#3905)
* working across tabs and floating panes through the cli
* finalize cli command
* plugin api
* style(fmt): rustfmt
* fix: re-focus pane in stack if it was focused
* style(fmt): rustfmt
* remove outdated comment
Diffstat (limited to 'zellij-utils/src/plugin_api/plugin_command.rs')
| -rw-r--r-- | zellij-utils/src/plugin_api/plugin_command.rs | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs index 9d92f260..2621502a 100644 --- a/zellij-utils/src/plugin_api/plugin_command.rs +++ b/zellij-utils/src/plugin_api/plugin_command.rs @@ -19,9 +19,10 @@ pub use super::generated_api::api::{ RerunCommandPanePayload, ResizePaneIdWithDirectionPayload, ResizePayload, RunCommandPayload, ScrollDownInPaneIdPayload, ScrollToBottomInPaneIdPayload, ScrollToTopInPaneIdPayload, ScrollUpInPaneIdPayload, SetFloatingPanePinnedPayload, - SetTimeoutPayload, ShowPaneWithIdPayload, SubscribePayload, SwitchSessionPayload, - SwitchTabToPayload, TogglePaneEmbedOrEjectForPaneIdPayload, TogglePaneIdFullscreenPayload, - UnsubscribePayload, WebRequestPayload, WriteCharsToPaneIdPayload, WriteToPaneIdPayload, + SetTimeoutPayload, ShowPaneWithIdPayload, StackPanesPayload, SubscribePayload, + SwitchSessionPayload, SwitchTabToPayload, TogglePaneEmbedOrEjectForPaneIdPayload, + TogglePaneIdFullscreenPayload, UnsubscribePayload, WebRequestPayload, + WriteCharsToPaneIdPayload, WriteToPaneIdPayload, }, plugin_permission::PermissionType as ProtobufPermissionType, resize::ResizeAction as ProtobufResizeAction, @@ -1328,6 +1329,18 @@ impl TryFrom<ProtobufPluginCommand> for PluginCommand { }, _ => Err("Mismatched payload for SetFloatingPanePinned"), }, + Some(CommandName::StackPanes) => match protobuf_plugin_command.payload { + Some(Payload::StackPanesPayload(stack_panes_payload)) => { + Ok(PluginCommand::StackPanes( + stack_panes_payload + .pane_ids + .into_iter() + .filter_map(|p_id| p_id.try_into().ok()) + .collect(), + )) + }, + _ => Err("Mismatched payload for SetFloatingPanePinned"), + }, None => Err("Unrecognized plugin command"), } } @@ -2172,6 +2185,15 @@ impl TryFrom<PluginCommand> for ProtobufPluginCommand { )), }) }, + PluginCommand::StackPanes(pane_ids) => Ok(ProtobufPluginCommand { + name: CommandName::StackPanes as i32, + payload: Some(Payload::StackPanesPayload(StackPanesPayload { + pane_ids: pane_ids + .into_iter() + .filter_map(|p_id| p_id.try_into().ok()) + .collect(), + })), + }), } } } |
