fix(lib): sudo-{find,this}-file: disable auto-save

auto-save can trigger processes that hang silently in the background,
making those buffers inoperable (hanging Emacs) for the rest of the
session, even if they are killed (tramp caches them), so I suppress them
solely for these temporary tramp buffers created by doom/sudo-find-file
and doom/sudo-this-file.
This commit is contained in:
Henrik Lissner 2024-04-04 17:56:26 -04:00 committed by Yann Esposito (Yogsototh)
parent 4a9c71f96e
commit d792f0dbb1
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646

View file

@ -487,19 +487,25 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation."
(defun doom/sudo-find-file (file) (defun doom/sudo-find-file (file)
"Open FILE as root." "Open FILE as root."
(interactive "FOpen file as root: ") (interactive "FOpen file as root: ")
(find-file (doom--sudo-file-path (expand-file-name file)))) ;; HACK: Disable auto-save in temporary tramp buffers because it could trigger
;; processes that hang silently in the background, making those buffers
;; inoperable for the rest of that session (Tramp caches them).
(let ((auto-save-default nil)
;; REVIEW: use only these when we drop 28 support
(remote-file-name-inhibit-auto-save t)
(remote-file-name-inhibit-auto-save-visited t))
(find-file (doom--sudo-file-path (expand-file-name file)))))
;;;###autoload ;;;###autoload
(defun doom/sudo-this-file () (defun doom/sudo-this-file ()
"Open the current file as root." "Open the current file as root."
(interactive) (interactive)
(find-file (doom/sudo-find-file
(doom--sudo-file-path (or (buffer-file-name (buffer-base-buffer))
(or (buffer-file-name (buffer-base-buffer)) (when (or (derived-mode-p 'dired-mode)
(when (or (derived-mode-p 'dired-mode) (derived-mode-p 'wdired-mode))
(derived-mode-p 'wdired-mode)) default-directory)
default-directory) (user-error "Cannot determine the file path of the current buffer"))))
(user-error "Cannot determine the file path of the current buffer")))))
;;;###autoload ;;;###autoload
(defun doom/sudo-save-buffer () (defun doom/sudo-save-buffer ()