summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2023-11-05 15:32:05 +0100
committerGitHub <noreply@github.com>2023-11-05 15:32:05 +0100
commit28a165a969a9e1ee9f1fe66e4d63134b895b2ef7 (patch)
tree678ec1cd9d536d9cb7fcdb071e27cf12caf43afb /zellij-utils/src/plugin_api
parent9eb9734bcca3cb0dcdff592da4d7a536d860c363 (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.proto2
-rw-r--r--zellij-utils/src/plugin_api/action.rs10
-rw-r--r--zellij-utils/src/plugin_api/plugin_command.proto2
-rw-r--r--zellij-utils/src/plugin_api/plugin_command.rs10
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)),
+ }),
}
}
}