diff options
author | Aram Drevekenin <aram@poor.dev> | 2023-11-05 15:32:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-05 15:32:05 +0100 |
commit | 28a165a969a9e1ee9f1fe66e4d63134b895b2ef7 (patch) | |
tree | 678ec1cd9d536d9cb7fcdb071e27cf12caf43afb /zellij-utils/src/plugin_api | |
parent | 9eb9734bcca3cb0dcdff592da4d7a536d860c363 (diff) |
feat(ux): allow renaming sessions (#2903)
* change session name through the cli
* change session name from the session-manager
* style(fmt): rustfmt
Diffstat (limited to 'zellij-utils/src/plugin_api')
-rw-r--r-- | zellij-utils/src/plugin_api/action.proto | 2 | ||||
-rw-r--r-- | zellij-utils/src/plugin_api/action.rs | 10 | ||||
-rw-r--r-- | zellij-utils/src/plugin_api/plugin_command.proto | 2 | ||||
-rw-r--r-- | zellij-utils/src/plugin_api/plugin_command.rs | 10 |
4 files changed, 24 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/action.proto b/zellij-utils/src/plugin_api/action.proto index 1545b9bf4..59eea7af1 100644 --- a/zellij-utils/src/plugin_api/action.proto +++ b/zellij-utils/src/plugin_api/action.proto @@ -51,6 +51,7 @@ message Action { IdAndName rename_terminal_pane_payload = 42; IdAndName rename_plugin_pane_payload = 43; IdAndName rename_tab_payload = 44; + string rename_session_payload = 45; } } @@ -221,6 +222,7 @@ enum ActionName { BreakPane = 77; BreakPaneRight = 78; BreakPaneLeft = 79; + RenameSession = 80; } message Position { diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs index 0addb0dcc..1048d91f6 100644 --- a/zellij-utils/src/plugin_api/action.rs +++ b/zellij-utils/src/plugin_api/action.rs @@ -626,6 +626,12 @@ impl TryFrom<ProtobufAction> for Action { Some(_) => Err("BreakPaneLeft should not have a payload"), None => Ok(Action::BreakPaneLeft), }, + Some(ProtobufActionName::RenameSession) => match protobuf_action.optional_payload { + Some(OptionalPayload::RenameSessionPayload(name)) => { + Ok(Action::RenameSession(name)) + }, + _ => Err("Wrong payload for Action::RenameSession"), + }, _ => Err("Unknown Action"), } } @@ -1164,6 +1170,10 @@ impl TryFrom<Action> for ProtobufAction { name: ProtobufActionName::BreakPaneLeft as i32, optional_payload: None, }), + Action::RenameSession(session_name) => Ok(ProtobufAction { + name: ProtobufActionName::RenameSession as i32, + optional_payload: Some(OptionalPayload::RenameSessionPayload(session_name)), + }), Action::NoOp | Action::Confirm | Action::NewInPlacePane(..) diff --git a/zellij-utils/src/plugin_api/plugin_command.proto b/zellij-utils/src/plugin_api/plugin_command.proto index 0b950ff0e..53994a88c 100644 --- a/zellij-utils/src/plugin_api/plugin_command.proto +++ b/zellij-utils/src/plugin_api/plugin_command.proto @@ -86,6 +86,7 @@ enum CommandName { WebRequest = 72; DeleteDeadSession = 73; DeleteAllDeadSessions = 74; + RenameSession = 75; } message PluginCommand { @@ -135,6 +136,7 @@ message PluginCommand { RunCommandPayload run_command_payload = 43; WebRequestPayload web_request_payload = 44; string delete_dead_session_payload = 45; + string rename_session_payload = 46; } } diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs index 6b70b18eb..ed476687c 100644 --- a/zellij-utils/src/plugin_api/plugin_command.rs +++ b/zellij-utils/src/plugin_api/plugin_command.rs @@ -635,6 +635,12 @@ impl TryFrom<ProtobufPluginCommand> for PluginCommand { _ => Err("Mismatched payload for DeleteDeadSession"), }, Some(CommandName::DeleteAllDeadSessions) => Ok(PluginCommand::DeleteAllDeadSessions), + Some(CommandName::RenameSession) => match protobuf_plugin_command.payload { + Some(Payload::RenameSessionPayload(new_session_name)) => { + Ok(PluginCommand::RenameSession(new_session_name)) + }, + _ => Err("Mismatched payload for RenameSession"), + }, None => Err("Unrecognized plugin command"), } } @@ -1059,6 +1065,10 @@ impl TryFrom<PluginCommand> for ProtobufPluginCommand { name: CommandName::DeleteAllDeadSessions as i32, payload: None, }), + PluginCommand::RenameSession(new_session_name) => Ok(ProtobufPluginCommand { + name: CommandName::RenameSession as i32, + payload: Some(Payload::RenameSessionPayload(new_session_name)), + }), } } } |