zellij/zellij-utils/src/plugin_api/plugin_command.proto
Aram Drevekenin 90e93d64bd
fix(plugins): remove protobuf duplications (#2729)
* fix(plugins): remove protobuf duplications

* style(fmt): rustfmt
2023-08-25 19:47:23 +02:00

182 lines
4.6 KiB
Protocol Buffer

syntax = "proto3";
import "action.proto";
import "event.proto";
import "file.proto";
import "command.proto";
import "message.proto";
import "resize.proto";
import "plugin_permission.proto";
package api.plugin_command;
enum CommandName {
Subscribe = 0;
Unsubscribe = 1;
SetSelectable = 2;
GetPluginIds = 3;
GetZellijVersion = 4;
OpenFile = 5;
OpenFileFloating = 6;
OpenTerminal = 7;
OpenTerminalFloating = 8;
OpenCommandPane = 9;
OpenCommandPaneFloating = 10;
SwitchTabTo = 11;
SetTimeout = 12;
ExecCmd = 13;
PostMessageTo = 14;
PostMessageToPlugin = 15;
HideSelf = 16;
ShowSelf = 17;
SwitchToMode = 18;
NewTabsWithLayout = 19;
NewTab = 20;
GoToNextTab = 21;
GoToPreviousTab = 22;
Resize = 23;
ResizeWithDirection = 24;
FocusNextPane = 25;
FocusPreviousPane = 26;
MoveFocus = 27;
MoveFocusOrTab = 28;
Detach = 29;
EditScrollback = 30;
Write = 31;
WriteChars = 32;
ToggleTab = 33;
MovePane = 34;
MovePaneWithDirection = 35;
ClearScreen = 36;
ScrollUp = 37;
ScrollDown = 38;
ScrollToTop = 39;
ScrollToBottom = 40;
PageScrollUp = 41;
PageScrollDown = 42;
ToggleFocusFullscreen = 43;
TogglePaneFrames = 44;
TogglePaneEmbedOrEject = 45;
UndoRenamePane = 46;
CloseFocus = 47;
ToggleActiveTabSync = 48;
CloseFocusedTab = 49;
UndoRenameTab = 50;
QuitZellij = 51;
PreviousSwapLayout = 52;
NextSwapLayout = 53;
GoToTabName = 54;
FocusOrCreateTab = 55;
GoToTab = 56;
StartOrReloadPlugin = 57;
CloseTerminalPane = 58;
ClosePluginPane = 59;
FocusTerminalPane = 60;
FocusPluginPane = 61;
RenameTerminalPane = 62;
RenamePluginPane = 63;
RenameTab = 64;
ReportCrash = 65;
RequestPluginPermissions = 66;
SwitchSession = 67;
}
message PluginCommand {
CommandName name = 1;
oneof payload {
SubscribePayload subscribe_payload = 2;
UnsubscribePayload unsubscribe_payload = 3;
bool set_selectable_payload = 4;
OpenFilePayload open_file_payload = 5;
OpenFilePayload open_file_floating_payload = 6;
OpenFilePayload open_terminal_payload = 7;
OpenFilePayload open_terminal_floating_payload = 8;
OpenCommandPanePayload open_command_pane_payload = 9;
OpenCommandPanePayload open_command_pane_floating_payload = 10;
SwitchTabToPayload switch_tab_to_payload = 11;
SetTimeoutPayload set_timeout_payload = 12;
ExecCmdPayload exec_cmd_payload = 13;
PluginMessagePayload post_message_to_payload = 14;
PluginMessagePayload post_message_to_plugin_payload = 15;
bool show_self_payload = 16;
action.SwitchToModePayload switch_to_mode_payload = 17;
string new_tabs_with_layout_payload = 18;
ResizePayload resize_payload = 19;
ResizePayload resize_with_direction_payload = 20;
MovePayload move_focus_payload = 21;
MovePayload move_focus_or_tab_payload = 22;
bytes write_payload = 23;
string write_chars_payload = 24;
MovePayload move_pane_with_direction_payload = 25;
string go_to_tab_name_payload = 26;
string focus_or_create_tab_payload = 27;
uint32 go_to_tab_payload = 28;
string start_or_reload_plugin_payload = 29;
uint32 close_terminal_pane_payload = 30;
uint32 close_plugin_pane_payload = 31;
action.PaneIdAndShouldFloat focus_terminal_pane_payload = 32;
action.PaneIdAndShouldFloat focus_plugin_pane_payload = 33;
IdAndNewName rename_terminal_pane_payload = 34;
IdAndNewName rename_plugin_pane_payload = 35;
IdAndNewName rename_tab_payload = 36;
string report_crash_payload = 37;
RequestPluginPermissionPayload request_plugin_permission_payload = 38;
SwitchSessionPayload switch_session_payload = 39;
}
}
message SwitchSessionPayload {
optional string name = 1;
optional uint32 tab_position = 2;
optional uint32 pane_id = 3;
optional bool pane_id_is_plugin = 4;
}
message RequestPluginPermissionPayload {
repeated plugin_permission.PermissionType permissions = 1;
}
message SubscribePayload {
event.EventNameList subscriptions = 1;
}
message UnsubscribePayload {
event.EventNameList subscriptions = 1;
}
message OpenFilePayload {
file.File file_to_open = 1;
}
message OpenCommandPanePayload {
command.Command command_to_run = 1;
}
message SwitchTabToPayload {
uint32 tab_index = 1;
}
message SetTimeoutPayload {
double seconds = 1;
}
message ExecCmdPayload {
repeated string command_line = 1;
}
message PluginMessagePayload {
api.message.Message message = 1;
}
message ResizePayload {
resize.Resize resize = 1;
}
message MovePayload {
resize.MoveDirection direction = 1;
}
message IdAndNewName {
uint32 id = 1; // pane id or tab index
string new_name = 2;
}