Add command to copy current file name (#22174)

Closes #21967

Add actions `CopyFileName` and `CopyFileNameWithoutExtension` to be used in the command palette.

Release Notes:

- Added commands `editor: copy file name` and `editor: copy file name without extensions`.
This commit is contained in:
ANKDDEV 2025-02-11 18:42:23 +03:00 committed by GitHub
parent 8fa85c41a1
commit 7fe6943d89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 0 deletions

View file

@ -265,6 +265,8 @@ gpui::actions!(
Copy,
CopyFileLocation,
CopyHighlightJson,
CopyFileName,
CopyFileNameWithoutExtension,
CopyPath,
CopyPermalinkToLine,
CopyRelativePath,

View file

@ -13116,6 +13116,31 @@ impl Editor {
}
}
pub fn copy_file_name_without_extension(
&mut self,
_: &CopyFileNameWithoutExtension,
_: &mut Window,
cx: &mut Context<Self>,
) {
if let Some(file) = self.target_file(cx) {
if let Some(file_stem) = file.path().file_stem() {
if let Some(name) = file_stem.to_str() {
cx.write_to_clipboard(ClipboardItem::new_string(name.to_string()));
}
}
}
}
pub fn copy_file_name(&mut self, _: &CopyFileName, _: &mut Window, cx: &mut Context<Self>) {
if let Some(file) = self.target_file(cx) {
if let Some(file_name) = file.path().file_name() {
if let Some(name) = file_name.to_str() {
cx.write_to_clipboard(ClipboardItem::new_string(name.to_string()));
}
}
}
}
pub fn toggle_git_blame(
&mut self,
_: &ToggleGitBlame,

View file

@ -408,6 +408,8 @@ impl EditorElement {
register_action(editor, window, Editor::reveal_in_finder);
register_action(editor, window, Editor::copy_path);
register_action(editor, window, Editor::copy_relative_path);
register_action(editor, window, Editor::copy_file_name);
register_action(editor, window, Editor::copy_file_name_without_extension);
register_action(editor, window, Editor::copy_highlight_json);
register_action(editor, window, Editor::copy_permalink_to_line);
register_action(editor, window, Editor::open_permalink_to_line);