diff options
| author | Aram Drevekenin <aram@poor.dev> | 2026-02-12 16:12:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-12 16:12:26 +0100 |
| commit | 90da559f381417a6fba16758c10aeef85cd378a6 (patch) | |
| tree | 904ce4fa44149cc434d5b6d1ce39fb5914826631 /zellij-utils/src/plugin_api | |
| parent | fix: report layout folder to screen from watcher instead of querying (#4696) (diff) | |
| download | sl0ppij-90da559f381417a6fba16758c10aeef85cd378a6.tar.gz sl0ppij-90da559f381417a6fba16758c10aeef85cd378a6.tar.xz sl0ppij-90da559f381417a6fba16758c10aeef85cd378a6.zip | |
Propagate plugin alias config changes to plugins (#4698)
* propagate plugin alias config changes to plugins
* rustfmt
* add pr
Diffstat (limited to 'zellij-utils/src/plugin_api')
| -rw-r--r-- | zellij-utils/src/plugin_api/event.proto | 6 | ||||
| -rw-r--r-- | zellij-utils/src/plugin_api/event.rs | 29 |
2 files changed, 35 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/event.proto b/zellij-utils/src/plugin_api/event.proto index ff79d144..5daf3ecd 100644 --- a/zellij-utils/src/plugin_api/event.proto +++ b/zellij-utils/src/plugin_api/event.proto @@ -63,6 +63,7 @@ enum EventType { ActionComplete = 38; CwdChanged = 39; AvailableLayoutInfo = 40; + PluginConfigurationChanged = 41; } message EventNameList { @@ -105,6 +106,7 @@ message Event { ActionCompletePayload action_complete_payload = 32; CwdChangedPayload cwd_changed_payload = 33; AvailableLayoutInfoPayload available_layout_info_payload = 34; + PluginConfigurationChangedPayload plugin_configuration_changed_payload = 35; } } @@ -506,3 +508,7 @@ message ActionCompletePayload { repeated ContextItem context = 3; } +message PluginConfigurationChangedPayload { + repeated ContextItem configuration = 1; +} + diff --git a/zellij-utils/src/plugin_api/event.rs b/zellij-utils/src/plugin_api/event.rs index 0fc31448..431e5e0f 100644 --- a/zellij-utils/src/plugin_api/event.rs +++ b/zellij-utils/src/plugin_api/event.rs @@ -20,6 +20,7 @@ pub use super::generated_api::api::{ PaneManifest as ProtobufPaneManifest, PaneMetadata as ProtobufPaneMetadata, PaneRenderReportPayload as ProtobufPaneRenderReportPayload, PaneScrollbackResponse as ProtobufPaneScrollbackResponse, PaneType as ProtobufPaneType, + PluginConfigurationChangedPayload as ProtobufPluginConfigurationChangedPayload, PluginInfo as ProtobufPluginInfo, ResurrectableSession as ProtobufResurrectableSession, SelectedText as ProtobufSelectedText, SessionManifest as ProtobufSessionManifest, SyntaxError as ProtobufSyntaxError, TabInfo as ProtobufTabInfo, @@ -488,6 +489,17 @@ impl TryFrom<ProtobufEvent> for Event { }, _ => Err("Malformed payload for the AvailableLayoutInfo Event"), }, + Some(ProtobufEventType::PluginConfigurationChanged) => match protobuf_event.payload { + Some(ProtobufEventPayload::PluginConfigurationChangedPayload(payload)) => { + let configuration = payload + .configuration + .into_iter() + .map(|item| (item.name, item.value)) + .collect(); + Ok(Event::PluginConfigurationChanged(configuration)) + }, + _ => Err("Malformed payload for PluginConfigurationChanged Event"), + }, None => Err("Unknown Protobuf Event"), } } @@ -964,6 +976,21 @@ impl TryFrom<Event> for ProtobufEvent { )), }) }, + Event::PluginConfigurationChanged(configuration) => { + let configuration_items: Vec<ProtobufContextItem> = configuration + .into_iter() + .map(|(name, value)| ProtobufContextItem { name, value }) + .collect(); + + let payload = ProtobufPluginConfigurationChangedPayload { + configuration: configuration_items, + }; + + Ok(ProtobufEvent { + name: ProtobufEventType::PluginConfigurationChanged as i32, + payload: Some(event::Payload::PluginConfigurationChangedPayload(payload)), + }) + }, } } } @@ -1865,6 +1892,7 @@ impl TryFrom<ProtobufEventType> for EventType { ProtobufEventType::ActionComplete => EventType::ActionComplete, ProtobufEventType::CwdChanged => EventType::CwdChanged, ProtobufEventType::AvailableLayoutInfo => EventType::AvailableLayoutInfo, + ProtobufEventType::PluginConfigurationChanged => EventType::PluginConfigurationChanged, }) } } @@ -1913,6 +1941,7 @@ impl TryFrom<EventType> for ProtobufEventType { EventType::ActionComplete => ProtobufEventType::ActionComplete, EventType::CwdChanged => ProtobufEventType::CwdChanged, EventType::AvailableLayoutInfo => ProtobufEventType::AvailableLayoutInfo, + EventType::PluginConfigurationChanged => ProtobufEventType::PluginConfigurationChanged, }) } } |
