Centralize the CopyPath and CopyRelativePath actions to zed_actions (#24836)

I spent an hour with @marcospb19 this morning debugging an issue with
adding `Copy Path` and `Copy Relative Path` actions to the editor
context menu. Turned out that the problem was using
`workspace::CopyPath` in the menu and `editor::CopyPath` in the action
handler.

This is an easy mistake to make, so let's fix it for everyone.

Release Notes:

- N/A
This commit is contained in:
Mikayla Maki 2025-02-13 15:30:44 -08:00 committed by GitHub
parent 28c667a3c7
commit 5d26ce14d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 84 additions and 31 deletions

View file

@ -186,8 +186,6 @@ actions!(
NewDirectory,
NewFile,
Copy,
CopyPath,
CopyRelativePath,
Duplicate,
RevealInFileManager,
RemoveFromProject,
@ -730,8 +728,11 @@ impl ProjectPanel {
}
})
.separator()
.action("Copy Path", Box::new(CopyPath))
.action("Copy Relative Path", Box::new(CopyRelativePath))
.action("Copy Path", Box::new(zed_actions::workspace::CopyPath))
.action(
"Copy Relative Path",
Box::new(zed_actions::workspace::CopyRelativePath),
)
.separator()
.when(!is_root || !cfg!(target_os = "windows"), |menu| {
menu.action("Rename", Box::new(Rename))
@ -2161,7 +2162,12 @@ impl ProjectPanel {
self.paste(&Paste {}, window, cx);
}
fn copy_path(&mut self, _: &CopyPath, _: &mut Window, cx: &mut Context<Self>) {
fn copy_path(
&mut self,
_: &zed_actions::workspace::CopyPath,
_: &mut Window,
cx: &mut Context<Self>,
) {
let abs_file_paths = {
let project = self.project.read(cx);
self.effective_entries()
@ -2185,7 +2191,12 @@ impl ProjectPanel {
}
}
fn copy_relative_path(&mut self, _: &CopyRelativePath, _: &mut Window, cx: &mut Context<Self>) {
fn copy_relative_path(
&mut self,
_: &zed_actions::workspace::CopyRelativePath,
_: &mut Window,
cx: &mut Context<Self>,
) {
let file_paths = {
let project = self.project.read(cx);
self.effective_entries()