aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-02-12 16:12:26 +0100
committerGitHub <noreply@github.com>2026-02-12 16:12:26 +0100
commit90da559f381417a6fba16758c10aeef85cd378a6 (patch)
tree904ce4fa44149cc434d5b6d1ce39fb5914826631 /zellij-utils/src/plugin_api
parentfix: report layout folder to screen from watcher instead of querying (#4696) (diff)
downloadsl0ppij-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.proto6
-rw-r--r--zellij-utils/src/plugin_api/event.rs29
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,
})
}
}