Add magit/vcs support to doom file commands
This commit is contained in:
parent
40077c6c4b
commit
6bf529ddf8
1 changed files with 16 additions and 2 deletions
|
@ -25,12 +25,23 @@
|
||||||
(when new-path
|
(when new-path
|
||||||
(recentf-add-file new-path))
|
(recentf-add-file new-path))
|
||||||
(recentf-remove-if-non-kept old-path))
|
(recentf-remove-if-non-kept old-path))
|
||||||
(when (and projectile-mode
|
(when (and (bound-and-true-p projectile-mode)
|
||||||
(projectile-project-p)
|
(projectile-project-p)
|
||||||
(projectile-file-cached-p old-path (projectile-project-root)))
|
(projectile-file-cached-p old-path (projectile-project-root)))
|
||||||
(projectile-purge-file-from-cache old-path))
|
(projectile-purge-file-from-cache old-path))
|
||||||
(when (bound-and-true-p save-place-mode)
|
(when (bound-and-true-p save-place-mode)
|
||||||
(save-place-forget-unreadable-files)))
|
(save-place-forget-unreadable-files))
|
||||||
|
(when (featurep 'vc)
|
||||||
|
(when-let* ((backend (vc-backend old-path))
|
||||||
|
(default-directory (file-name-directory old-path)))
|
||||||
|
(vc-call-backend backend 'delete-file old-path))))
|
||||||
|
|
||||||
|
(defun doom--update-file (path)
|
||||||
|
(when (featurep 'vc)
|
||||||
|
(vc-file-clearprops path)
|
||||||
|
(vc-resynch-buffer path nil t))
|
||||||
|
(when (featurep 'magit)
|
||||||
|
(magit-refresh)))
|
||||||
|
|
||||||
(defun doom--copy-file (old-path new-path &optional force-p)
|
(defun doom--copy-file (old-path new-path &optional force-p)
|
||||||
(let* ((new-path (expand-file-name new-path))
|
(let* ((new-path (expand-file-name new-path))
|
||||||
|
@ -83,6 +94,7 @@ kills the buffer. If FORCE-P, force the deletion (don't ask for confirmation)."
|
||||||
;; to real buffers (`doom-real-buffer-p')
|
;; to real buffers (`doom-real-buffer-p')
|
||||||
(doom/kill-this-buffer-in-all-windows buf t)
|
(doom/kill-this-buffer-in-all-windows buf t)
|
||||||
(doom--forget-file path)
|
(doom--forget-file path)
|
||||||
|
(doom--update-file path)
|
||||||
(message "Successfully deleted %s" short-path))))))))
|
(message "Successfully deleted %s" short-path))))))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
@ -92,6 +104,7 @@ file if it exists, without confirmation."
|
||||||
(interactive "F")
|
(interactive "F")
|
||||||
(pcase (catch 'status
|
(pcase (catch 'status
|
||||||
(when-let* ((dest (doom--copy-file (buffer-file-name) new-path force-p)))
|
(when-let* ((dest (doom--copy-file (buffer-file-name) new-path force-p)))
|
||||||
|
(doom--update-file new-path)
|
||||||
(message "File successfully copied to %s" dest)))
|
(message "File successfully copied to %s" dest)))
|
||||||
(`overwrite-self (error "Cannot overwrite self"))
|
(`overwrite-self (error "Cannot overwrite self"))
|
||||||
(`aborted (message "Aborted"))
|
(`aborted (message "Aborted"))
|
||||||
|
@ -111,6 +124,7 @@ file if it exists, without confirmation."
|
||||||
(kill-this-buffer)
|
(kill-this-buffer)
|
||||||
(find-file new-path)
|
(find-file new-path)
|
||||||
(doom--forget-file old-path new-path)
|
(doom--forget-file old-path new-path)
|
||||||
|
(doom--update-file new-path)
|
||||||
(message "File successfully moved to %s" dest))))
|
(message "File successfully moved to %s" dest))))
|
||||||
(`overwrite-self (error "Cannot overwrite self"))
|
(`overwrite-self (error "Cannot overwrite self"))
|
||||||
(`aborted (message "Aborted"))
|
(`aborted (message "Aborted"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue