Remove doom-cleanup-hook & doom/cleanup-session
These weren't reliable, often times buggy or overzealous about killing buffers and processes. Best to do it manually or come up with a better solution.
This commit is contained in:
parent
3e85981695
commit
9b7d95f43a
5 changed files with 2 additions and 53 deletions
|
@ -34,11 +34,6 @@ See `doom-real-buffer-p' for more information.")
|
|||
"The name of the buffer to fall back to if no other buffers exist (will create
|
||||
it if it doesn't exist).")
|
||||
|
||||
;;;###autoload
|
||||
(defvar doom-cleanup-hook ()
|
||||
"A list of hooks run when `doom/cleanup-session' is run, meant to clean up
|
||||
leftover buffers and processes.")
|
||||
|
||||
|
||||
;;
|
||||
;; Functions
|
||||
|
@ -264,10 +259,11 @@ If DONT-SAVE, don't prompt to save modified buffers (discarding their changes)."
|
|||
If PROJECT-P (universal argument), don't close windows and only kill buffers
|
||||
that belong to the current project."
|
||||
(interactive "P")
|
||||
(save-some-buffers)
|
||||
(unless project-p
|
||||
(delete-other-windows))
|
||||
(switch-to-buffer (doom-fallback-buffer))
|
||||
(doom/cleanup-session nil (if project-p (doom-project-buffer-list))))
|
||||
(mapc #'kill-buffer (if project-p (doom-project-buffer-list) (doom-buffer-list))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/kill-other-buffers (&optional project-p)
|
||||
|
@ -297,40 +293,3 @@ project."
|
|||
(n (doom-kill-matching-buffers pattern buffers)))
|
||||
(when (called-interactively-p 'interactive)
|
||||
(message "Killed %s buffers" n))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/cleanup-session (arg &optional buffer-list)
|
||||
"Clean up buried buries and orphaned processes in the current workspace. If
|
||||
ALL-P (universal argument), clean them up globally."
|
||||
(interactive "P")
|
||||
(let ((buffers (doom-buried-buffers buffer-list))
|
||||
(n 0))
|
||||
(dolist (buf buffers)
|
||||
(unless (buffer-modified-p buf)
|
||||
(kill-buffer buf)
|
||||
(cl-incf n)))
|
||||
(when arg
|
||||
(setq n (+ n (doom/cleanup-buffer-processes))))
|
||||
(dolist (hook doom-cleanup-hook)
|
||||
(let ((m (funcall hook)))
|
||||
(when (integerp m)
|
||||
(setq n (+ n m)))))
|
||||
(message "Cleaned up %s buffers" n)
|
||||
n))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/cleanup-buffer-processes ()
|
||||
"Kill all processes that have no visible associated buffers. Return number of
|
||||
processes killed."
|
||||
(interactive)
|
||||
(let ((n 0))
|
||||
(dolist (p (process-list))
|
||||
(let ((process-buffer (process-buffer p)))
|
||||
(when (and (process-live-p p)
|
||||
(not (string= (process-name p) "server"))
|
||||
(or (not process-buffer)
|
||||
(and (bufferp process-buffer)
|
||||
(not (buffer-live-p process-buffer)))))
|
||||
(delete-process p)
|
||||
(cl-incf n))))
|
||||
n))
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
;;; feature/evil/+commands.el -*- lexical-binding: t; -*-
|
||||
|
||||
(evil-define-command +evil:cleanup-session (bang)
|
||||
(interactive "<!>")
|
||||
(doom/cleanup-session bang))
|
||||
|
||||
(evil-define-operator +evil:open-scratch-buffer (bang)
|
||||
(interactive "<!>")
|
||||
(doom/open-scratch-buffer bang))
|
||||
|
@ -94,7 +90,6 @@ This command understands vim file modifiers (like %:p:h). See
|
|||
(evil-ex-define-cmd "grevert" #'git-gutter:revert-hunk)
|
||||
|
||||
;;; Dealing with buffers
|
||||
(evil-ex-define-cmd "clean[up]" #'+evil:cleanup-session)
|
||||
(evil-ex-define-cmd "k[ill]" #'doom/kill-this-buffer)
|
||||
(evil-ex-define-cmd "k[ill]all" #'+default:kill-all-buffers)
|
||||
(evil-ex-define-cmd "k[ill]m" #'+default:kill-matching-buffers)
|
||||
|
|
|
@ -102,8 +102,6 @@ Uses `+workspaces-main' to determine the name of the main workspace."
|
|||
|
||||
(advice-add #'persp-asave-on-exit :around #'+workspaces*autosave-real-buffers)
|
||||
|
||||
(add-hook 'doom-cleanup-hook #'+workspaces|cleanup-unassociated-buffers)
|
||||
|
||||
;; Ensure buffers we've opened/switched to are auto-added to the current
|
||||
;; perspective
|
||||
(setq persp-add-buffer-on-find-file t
|
||||
|
|
|
@ -210,7 +210,6 @@ compilation database is present in the project.")
|
|||
:definition #'rtags-find-symbol-at-point
|
||||
:references #'rtags-find-references-at-point)
|
||||
|
||||
(add-hook 'doom-cleanup-hook #'+cc|cleanup-rtags)
|
||||
(add-hook! 'kill-emacs-hook (ignore-errors (rtags-cancel-process)))
|
||||
|
||||
;; Use rtags-imenu instead of imenu/counsel-imenu
|
||||
|
|
|
@ -56,7 +56,6 @@ adjustment.")
|
|||
:keymap +popup-mode-map
|
||||
(cond (+popup-mode
|
||||
(add-hook 'doom-escape-hook #'+popup|close-on-escape t)
|
||||
(add-hook 'doom-cleanup-hook #'+popup|cleanup-rules)
|
||||
(setq +popup--old-display-buffer-alist display-buffer-alist
|
||||
display-buffer-alist +popup--display-buffer-alist
|
||||
window--sides-inhibit-check t)
|
||||
|
@ -64,7 +63,6 @@ adjustment.")
|
|||
(push (cons prop 'writable) window-persistent-parameters)))
|
||||
(t
|
||||
(remove-hook 'doom-escape-hook #'+popup|close-on-escape)
|
||||
(remove-hook 'doom-cleanup-hook #'+popup|cleanup-rules)
|
||||
(setq display-buffer-alist +popup--old-display-buffer-alist
|
||||
window--sides-inhibit-check nil)
|
||||
(+popup|cleanup-rules)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue