From 9b7d95f43ae13ae077ac483541778a0a8295fed3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Feb 2019 22:56:32 -0500 Subject: [PATCH] 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. --- core/autoload/buffers.el | 45 ++-------------------------- modules/feature/evil/+commands.el | 5 ---- modules/feature/workspaces/config.el | 2 -- modules/lang/cc/config.el | 1 - modules/ui/popup/config.el | 2 -- 5 files changed, 2 insertions(+), 53 deletions(-) diff --git a/core/autoload/buffers.el b/core/autoload/buffers.el index 46241d4ff..8daf0b908 100644 --- a/core/autoload/buffers.el +++ b/core/autoload/buffers.el @@ -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)) diff --git a/modules/feature/evil/+commands.el b/modules/feature/evil/+commands.el index bfe2b4342..017171807 100644 --- a/modules/feature/evil/+commands.el +++ b/modules/feature/evil/+commands.el @@ -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) diff --git a/modules/feature/workspaces/config.el b/modules/feature/workspaces/config.el index a42f7e62e..ff26bb85b 100644 --- a/modules/feature/workspaces/config.el +++ b/modules/feature/workspaces/config.el @@ -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 diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index ecd4a96a3..57632cb1c 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -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 diff --git a/modules/ui/popup/config.el b/modules/ui/popup/config.el index cb49d1e8d..0f4ab07f7 100644 --- a/modules/ui/popup/config.el +++ b/modules/ui/popup/config.el @@ -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)