From 0ea197473236f4597895cb323b82f67b45c08dc4 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Sat, 7 Dec 2019 23:02:06 +0700 Subject: [PATCH] Add ibuffer filter group for the workspace This introduces the +ibuffer-current-workspace function which open an ibuffer with only buffers from the current workspace. Signed-off-by: Rudi Grinberg --- modules/emacs/ibuffer/config.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/emacs/ibuffer/config.el b/modules/emacs/ibuffer/config.el index 653ee52b2..9ad9e56d2 100644 --- a/modules/emacs/ibuffer/config.el +++ b/modules/emacs/ibuffer/config.el @@ -39,6 +39,23 @@ :header-mouse-map ibuffer-size-header-map) (file-size-human-readable (buffer-size))) + (when (featurep! :ui workspaces) + (define-ibuffer-filter workspace-buffers + "Filter for workspace buffers" + (:reader + (+workspace-get (read-string "workspace name: ")) :description "workspace") + (memq buf (+workspace-buffer-list qualifier))) + + (defun +ibuffer/workspace (workspace-name) + "Open an ibuffer window for a workspace" + (ibuffer nil (format "%s buffers" workspace-name) + (list (cons 'workspace-buffers (+workspace-get workspace-name))))) + + (defun +ibuffer-current-workspace () + "Open an ibuffer window for the current workspace" + (interactive) + (+ibuffer/workspace (+workspace-current-name)))) + (when (featurep! :completion ivy) (defadvice! +ibuffer-use-counsel-maybe-a (_file &optional _wildcards) "Use `counsel-find-file' instead of `find-file'."