Browse Source

Kill all buffers displayed in a perspective when killing it

Previously, only file buffers from the projectile project were killed.
org notes and processes were not killed.
All the buffers appearing in the window-conf of the perspective are now killed as well.
master
Maxime Wack 3 years ago
parent
commit
311eeee86a
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      projectorg.el

+ 10
- 0
projectorg.el View File

@@ -89,11 +89,21 @@ And switch to a perspective for the project."
(persp-switch (projectile-project-name (projectile-project-root FILENAME)))
(projectile-add-known-project (projectile-project-root FILENAME))))

(defun tree-alist-get-all (key list acc)
(cond ((or (not list) (not (listp list))) nil)
((eq key (car list)) (cons (cadr list) acc))
(t (append (tree-alist-get-all key (car list) acc) (tree-alist-get-all key (cdr list) acc)))))

(defun persp-kill-all-buffers (persp-name)
(mapc '(lambda (buffer) (when (get-buffer buffer) (kill-buffer buffer)))
(tree-alist-get-all 'buffer (persp-window-conf (persp-get-by-name persp-name)) nil)))

(defun projectorg/remove-from-project-list ()
(interactive)
(let ((proj (projectile-project-name)))
(projectile-remove-current-project-from-known-projects)
(projectile-kill-buffers)
(persp-kill-all-buffers proj)
(persp-kill proj)))

(defun projectorg/counsel-org-capture (&optional from-buffer)


Loading…
Cancel
Save