diff --git a/core/autoload/buffers.el b/core/autoload/buffers.el index 4eda3fa71..887273d4a 100644 --- a/core/autoload/buffers.el +++ b/core/autoload/buffers.el @@ -295,5 +295,3 @@ project." (when (called-interactively-p 'interactive) (message "Cleaned up %s buffers" n)))) -(after! evil - (evil-set-command-properties #'doom/cleanup-buffers :ex-bang t)) diff --git a/modules/feature/workspaces/autoload/workspaces.el b/modules/feature/workspaces/autoload/workspaces.el index f03409404..e142b81cb 100644 --- a/modules/feature/workspaces/autoload/workspaces.el +++ b/modules/feature/workspaces/autoload/workspaces.el @@ -357,6 +357,17 @@ the workspace and move to the next." ((> (length (+workspace-list)) 1) (+workspace/delete current-persp-name)))))) +;;;###autoload +(defun +workspace/cleanup () + "Clean up orphaned buffers and processes." + (interactive) + (let ((buffers (cl-remove-if #'persp--buffer-in-persps (buffer-list))) + (n (doom-kill-process-buffers))) + (mapc #'kill-buffer buffers) + (when (called-interactively-p 'any) + (message "Cleaned up %d buffers and %d processes" + (length buffers) n)))) + ;; ;; Tabs display in minibuffer diff --git a/modules/private/hlissner/+commands.el b/modules/private/hlissner/+commands.el index 07dbb909a..7b00fa39c 100644 --- a/modules/private/hlissner/+commands.el +++ b/modules/private/hlissner/+commands.el @@ -46,7 +46,9 @@ (ex! "grevert" #'git-gutter:revert-hunk) ;; Dealing with buffers -(ex! "clean[up]" #'doom/cleanup-buffers) +(evil-set-command-properties #'+workspace/cleanup :ex-bang t) + +(ex! "clean[up]" #'+workspace/cleanup) (ex! "k[ill]" #'doom/kill-this-buffer) (ex! "k[ill]all" #'+hlissner:kill-all-buffers) (ex! "k[ill]m" #'+hlissner:kill-matching-buffers)