Add command to copy current file name (#22174)
ANKDDEV
created 11 months ago
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`.
Change summary
crates/editor/src/actions.rs | 2 ++
crates/editor/src/editor.rs | 25 +++++++++++++++++++++++++
crates/editor/src/element.rs | 2 ++
3 files changed, 29 insertions(+)
Detailed changes
@@ -265,6 +265,8 @@ gpui::actions!(
Copy,
CopyFileLocation,
CopyHighlightJson,
+ CopyFileName,
+ CopyFileNameWithoutExtension,
CopyPath,
CopyPermalinkToLine,
CopyRelativePath,
@@ -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,
@@ -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);