diff --git a/configs/init-functions.el b/configs/init-functions.el index d29f07d..03a758e 100644 --- a/configs/init-functions.el +++ b/configs/init-functions.el @@ -102,6 +102,20 @@ If PROJECT is not specified, assume current project root." (message "Copied '%s'" filename)) (warn "Current buffer is not attached to a file!")))) +;; Copia el nombre del archivo actual pero usando como raiz la raiz del proyecto +(defun copy-project-filename () + "Copy the current buffer file name relative to project root to the clipboard." + (interactive) + (let ((filename (if (equal major-mode 'dired-mode) + default-directory + (buffer-file-name)))) + (if-let* ((root (kj/project-root)) + (rel-name (file-relative-name filename root))) + (progn + (kill-new rel-name) + (message "Copied '%s'" rel-name)) + (warn "Couldn't determine project-relative filename!")))) + (defun copy-basename () "Copy the current buffer basename to the clipboard." (interactive) diff --git a/configs/init-keys.el b/configs/init-keys.el index 18ad0da..1422618 100644 --- a/configs/init-keys.el +++ b/configs/init-keys.el @@ -36,6 +36,7 @@ (global-set-key (kbd "C-c ff") 'insert-filename) (global-set-key (kbd "C-c fb") 'insert-basename) (global-set-key (kbd "C-c fcf") 'copy-filename) +(global-set-key (kbd "C-c fcp") 'copy-project-filename) (global-set-key (kbd "C-c fcb") 'copy-basename) ;; Deactivar el abrir *messages* al cliquear en el minibuffer