diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-29 20:39:54 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-29 20:39:54 +0300 |
| commit | 8b74fb8a12716269c76f0b503ee7db5bbec2c921 (patch) | |
| tree | e5230f94cb1e6eb70d1f00c75cd85dae8b5b9ead /src/api/schema/events.rs | |
| parent | 5fffc59cd8aaea1604abb90e749e58fd97acfac0 (diff) | |
feat: emit placement mutation events
Diffstat (limited to 'src/api/schema/events.rs')
| -rw-r--r-- | src/api/schema/events.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/api/schema/events.rs b/src/api/schema/events.rs index 6e489180..014288b1 100644 --- a/src/api/schema/events.rs +++ b/src/api/schema/events.rs @@ -22,6 +22,8 @@ pub enum Subscription { WorkspaceUpdated {}, #[serde(rename = "workspace.renamed")] WorkspaceRenamed {}, + #[serde(rename = "workspace.moved")] + WorkspaceMoved {}, #[serde(rename = "workspace.closed")] WorkspaceClosed {}, #[serde(rename = "workspace.focused")] @@ -40,6 +42,8 @@ pub enum Subscription { TabFocused {}, #[serde(rename = "tab.renamed")] TabRenamed {}, + #[serde(rename = "tab.moved")] + TabMoved {}, #[serde(rename = "pane.created")] PaneCreated {}, #[serde(rename = "pane.closed")] @@ -115,6 +119,9 @@ pub enum EventMatch { #[serde(default, skip_serializing_if = "Option::is_none")] label: Option<String>, }, + WorkspaceMoved { + workspace_id: String, + }, WorkspaceFocused { workspace_id: String, }, @@ -132,6 +139,9 @@ pub enum EventMatch { #[serde(default, skip_serializing_if = "Option::is_none")] label: Option<String>, }, + TabMoved { + tab_id: String, + }, TabFocused { tab_id: String, }, @@ -176,6 +186,7 @@ pub enum EventKind { WorkspaceUpdated, WorkspaceClosed, WorkspaceRenamed, + WorkspaceMoved, WorkspaceFocused, WorktreeCreated, WorktreeOpened, @@ -183,6 +194,7 @@ pub enum EventKind { TabCreated, TabClosed, TabRenamed, + TabMoved, TabFocused, PaneCreated, PaneClosed, @@ -201,6 +213,7 @@ impl EventKind { EventKind::WorkspaceUpdated => "workspace.updated", EventKind::WorkspaceClosed => "workspace.closed", EventKind::WorkspaceRenamed => "workspace.renamed", + EventKind::WorkspaceMoved => "workspace.moved", EventKind::WorkspaceFocused => "workspace.focused", EventKind::WorktreeCreated => "worktree.created", EventKind::WorktreeOpened => "worktree.opened", @@ -208,6 +221,7 @@ impl EventKind { EventKind::TabCreated => "tab.created", EventKind::TabClosed => "tab.closed", EventKind::TabRenamed => "tab.renamed", + EventKind::TabMoved => "tab.moved", EventKind::TabFocused => "tab.focused", EventKind::PaneCreated => "pane.created", EventKind::PaneClosed => "pane.closed", @@ -227,6 +241,7 @@ pub const KNOWN_EVENT_KINDS: &[EventKind] = &[ EventKind::WorkspaceUpdated, EventKind::WorkspaceClosed, EventKind::WorkspaceRenamed, + EventKind::WorkspaceMoved, EventKind::WorkspaceFocused, EventKind::WorktreeCreated, EventKind::WorktreeOpened, @@ -234,6 +249,7 @@ pub const KNOWN_EVENT_KINDS: &[EventKind] = &[ EventKind::TabCreated, EventKind::TabClosed, EventKind::TabRenamed, + EventKind::TabMoved, EventKind::TabFocused, EventKind::PaneCreated, EventKind::PaneClosed, @@ -250,6 +266,7 @@ pub const PLUGIN_HOOK_EVENT_KINDS: &[EventKind] = &[ EventKind::WorkspaceUpdated, EventKind::WorkspaceClosed, EventKind::WorkspaceRenamed, + EventKind::WorkspaceMoved, EventKind::WorkspaceFocused, EventKind::WorktreeCreated, EventKind::WorktreeOpened, @@ -257,6 +274,7 @@ pub const PLUGIN_HOOK_EVENT_KINDS: &[EventKind] = &[ EventKind::TabCreated, EventKind::TabClosed, EventKind::TabRenamed, + EventKind::TabMoved, EventKind::TabFocused, EventKind::PaneCreated, EventKind::PaneClosed, @@ -383,6 +401,11 @@ pub enum EventData { workspace_id: String, label: String, }, + WorkspaceMoved { + workspace_id: String, + insert_index: usize, + workspaces: Vec<WorkspaceInfo>, + }, WorkspaceFocused { workspace_id: String, }, @@ -414,6 +437,12 @@ pub enum EventData { workspace_id: String, label: String, }, + TabMoved { + tab_id: String, + workspace_id: String, + insert_index: usize, + tabs: Vec<TabInfo>, + }, TabFocused { tab_id: String, workspace_id: String, |
