From 046b43f1358ce9df8487153e12f55e9201ae53aa Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 30 Oct 2025 10:10:19 -0300 Subject: [PATCH] collab panel: Open selected channel notes (#41560) Adds an action to open the notes for the currently selected channel in the collab panel, which is mapped to `alt-enter` in all platforms. Release Notes: - collab: Add `collab_panel::OpenSelectedChannelNotes` action (`alt-enter` by default) --- assets/keymaps/default-linux.json | 3 ++- assets/keymaps/default-macos.json | 3 ++- assets/keymaps/default-windows.json | 3 ++- crates/collab_ui/src/collab_panel.rs | 16 ++++++++++++++++ crates/workspace/src/workspace.rs | 3 +++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 19f9e3ca91..979e5a6ccc 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -1020,7 +1020,8 @@ "context": "CollabPanel", "bindings": { "alt-up": "collab_panel::MoveChannelUp", - "alt-down": "collab_panel::MoveChannelDown" + "alt-down": "collab_panel::MoveChannelDown", + "alt-enter": "collab_panel::OpenSelectedChannelNotes" } }, { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index fc20b274c2..4f9b85ff03 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1085,7 +1085,8 @@ "use_key_equivalents": true, "bindings": { "alt-up": "collab_panel::MoveChannelUp", - "alt-down": "collab_panel::MoveChannelDown" + "alt-down": "collab_panel::MoveChannelDown", + "alt-enter": "collab_panel::OpenSelectedChannelNotes" } }, { diff --git a/assets/keymaps/default-windows.json b/assets/keymaps/default-windows.json index 944870d037..29146f3080 100644 --- a/assets/keymaps/default-windows.json +++ b/assets/keymaps/default-windows.json @@ -1038,7 +1038,8 @@ "use_key_equivalents": true, "bindings": { "alt-up": "collab_panel::MoveChannelUp", - "alt-down": "collab_panel::MoveChannelDown" + "alt-down": "collab_panel::MoveChannelDown", + "alt-enter": "collab_panel::OpenSelectedChannelNotes" } }, { diff --git a/crates/collab_ui/src/collab_panel.rs b/crates/collab_ui/src/collab_panel.rs index 57d510d94c..29eff951d9 100644 --- a/crates/collab_ui/src/collab_panel.rs +++ b/crates/collab_ui/src/collab_panel.rs @@ -54,6 +54,10 @@ actions!( CollapseSelectedChannel, /// Expands the selected channel in the tree view. ExpandSelectedChannel, + /// Opens the meeting notes for the selected channel in the panel. + /// + /// Use `collab::OpenChannelNotes` to open the channel notes for the current call. + OpenSelectedChannelNotes, /// Starts moving a channel to a new location. StartMoveChannel, /// Moves the selected item to the current location. @@ -1856,6 +1860,17 @@ impl CollabPanel { } } + fn open_selected_channel_notes( + &mut self, + _: &OpenSelectedChannelNotes, + window: &mut Window, + cx: &mut Context, + ) { + if let Some(channel) = self.selected_channel() { + self.open_channel_notes(channel.id, window, cx); + } + } + fn set_channel_visibility( &mut self, channel_id: ChannelId, @@ -2976,6 +2991,7 @@ impl Render for CollabPanel { .on_action(cx.listener(CollabPanel::remove_selected_channel)) .on_action(cx.listener(CollabPanel::show_inline_context_menu)) .on_action(cx.listener(CollabPanel::rename_selected_channel)) + .on_action(cx.listener(CollabPanel::open_selected_channel_notes)) .on_action(cx.listener(CollabPanel::collapse_selected_channel)) .on_action(cx.listener(CollabPanel::expand_selected_channel)) .on_action(cx.listener(CollabPanel::start_move_selected_channel)) diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index a548a04aa7..b1de240eb6 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -7089,6 +7089,9 @@ actions!( [ /// Opens the channel notes for the current call. /// + /// Use `collab_panel::OpenSelectedChannelNotes` to open the channel notes for the selected + /// channel in the collab panel. + /// /// If you want to open a specific channel, use `zed::OpenZedUrl` with a channel notes URL - /// can be copied via "Copy link to section" in the context menu of the channel notes /// buffer. These URLs look like `https://zed.dev/channel/channel-name-CHANNEL_ID/notes`.