summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api/action.proto
blob: d59da4ad60281f14da4d739b86caa036872b9033 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
syntax = "proto3";

import "input_mode.proto";
import "resize.proto";

package api.action;

message Action {
  ActionName name = 1;
  oneof optional_payload {
    SwitchToModePayload switch_to_mode_payload = 2;
    WritePayload write_payload = 3;
    WriteCharsPayload write_chars_payload = 4;
    SwitchToModePayload switch_mode_for_all_clients_payload = 5;
    resize.Resize resize_payload = 6;
    resize.ResizeDirection move_focus_payload = 7;
    resize.ResizeDirection move_focus_or_tab_payload = 8;
    MovePanePayload move_pane_payload = 9;
    DumpScreenPayload dump_screen_payload = 10;
    ScrollAtPayload scroll_up_at_payload = 11;
    ScrollAtPayload scroll_down_at_payload = 12;
    NewPanePayload new_pane_payload = 13;
    EditFilePayload edit_file_payload = 14;
    NewFloatingPanePayload new_floating_pane_payload = 15;
    NewTiledPanePayload new_tiled_pane_payload = 16;
    bytes pane_name_input_payload = 17;
    uint32 go_to_tab_payload = 18;
    GoToTabNamePayload go_to_tab_name_payload = 19;
    bytes tab_name_input_payload = 20;
    RunCommandAction run_payload = 21;
    Position left_click_payload = 22;
    Position right_click_payload = 23;
    Position middle_click_payload = 24;
    LaunchOrFocusPluginPayload launch_or_focus_plugin_payload = 25;
    Position left_mouse_release_payload = 26;
    Position right_mouse_release_payload = 27;
    Position middle_mouse_release_payload = 28;
    Position mouse_hold_left_payload = 29;
    Position mouse_hold_right_payload = 30;
    Position mouse_hold_middle_payload = 31;
    bytes search_input_payload = 32;
    SearchDirection search_payload = 33;
    SearchOption search_toggle_option_payload = 34;
    NewPluginPanePayload new_tiled_plugin_pane_payload = 35;
    NewPluginPanePayload new_floating_plugin_pane_payload = 36;
    string start_or_reload_plugin_payload = 37;
    uint32 close_terminal_pane_payload = 38;
    uint32 close_plugin_pane_payload = 39;
    PaneIdAndShouldFloat focus_terminal_pane_with_id_payload = 40;
    PaneIdAndShouldFloat focus_plugin_pane_with_id_payload = 41;
    IdAndName rename_terminal_pane_payload = 42;
    IdAndName rename_plugin_pane_payload = 43;
    IdAndName rename_tab_payload = 44;
    string rename_session_payload = 45;
    LaunchOrFocusPluginPayload launch_plugin_payload = 46;
    CliPipePayload message_payload = 47;
    MoveTabDirection move_tab_payload = 48;
  }
}

message CliPipePayload {
  optional string name = 1;
  string payload = 2;
  repeated NameAndValue args = 3;
  optional string plugin = 4;
}

message IdAndName {
  bytes name = 1;
  uint32 id = 2;
}

message PaneIdAndShouldFloat {
  uint32 pane_id = 1;
  bool should_float = 2;
}

message NewPluginPanePayload {
  string plugin_url = 1;
  optional string pane_name = 2;
  bool skip_plugin_cache = 3;
}

enum SearchDirection {
  Up = 0;
  Down = 1;
}

enum SearchOption {
  CaseSensitivity = 0;
  WholeWord = 1;
  Wrap = 2;
}

enum MoveTabDirection {
  Left = 0;
  Right = 1;
}

message LaunchOrFocusPluginPayload {
  string plugin_url = 1;
  bool should_float = 2;
  optional PluginConfiguration plugin_configuration = 3;
  bool move_to_focused_tab = 4;
  bool should_open_in_place = 5;
  bool skip_plugin_cache = 6;
}

message GoToTabNamePayload {
  string tab_name = 1;
  bool create = 2;
}

message NewFloatingPanePayload {
  optional RunCommandAction command = 1;
}

message NewTiledPanePayload {
  optional RunCommandAction command = 1;
  optional resize.ResizeDirection direction = 2;
}

message MovePanePayload {
  optional resize.ResizeDirection direction = 1;
}

message EditFilePayload {
  string file_to_edit = 1;
  optional uint32 line_number = 2;
  optional string cwd = 3;
  optional resize.ResizeDirection direction = 4;
  bool should_float = 5;
}

message ScrollAtPayload {
  Position position = 1;
}

message NewPanePayload {
  optional resize.ResizeDirection direction = 1;
  optional string pane_name = 2;
}

message SwitchToModePayload {
  input_mode.InputMode input_mode = 1;
}

message WritePayload {
  bytes bytes_to_write = 1;
}

message WriteCharsPayload {
  string chars = 1;
}

message DumpScreenPayload {
  string file_path = 1;
  bool include_scrollback = 2;
}

enum ActionName {
    Quit = 0;
    Write = 1;
    WriteChars = 2;
    SwitchToMode = 3;
    SwitchModeForAllClients = 4;
    Resize = 5;
    FocusNextPane = 6;
    FocusPreviousPane = 7;
    SwitchFocus = 8;
    MoveFocus = 9;
    MoveFocusOrTab = 10;
    MovePane = 11;
    MovePaneBackwards = 12;
    ClearScreen = 13;
    DumpScreen = 14;
    EditScrollback = 15;
    ScrollUp = 16;
    ScrollUpAt = 17;
    ScrollDown = 18;
    ScrollDownAt = 19;
    ScrollToBottom = 20;
    ScrollToTop = 21;
    PageScrollUp = 22;
    PageScrollDown = 23;
    HalfPageScrollUp = 24;
    HalfPageScrollDown = 25;
    ToggleFocusFullscreen = 26;
    TogglePaneFrames = 27;
    ToggleActiveSyncTab = 28;
    NewPane = 29;
    EditFile = 30;
    NewFloatingPane = 31;
    NewTiledPane = 32;
    TogglePaneEmbedOrFloating = 33;
    ToggleFloatingPanes = 34;
<