[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/workroom 9e486d8102 30/74: Add new command workroom-kill-w
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/workroom 9e486d8102 30/74: Add new command workroom-kill-with-buffers |
Date: |
Sun, 27 Nov 2022 16:03:27 -0500 (EST) |
branch: elpa/workroom
commit 9e486d810242afa2110825563114b774e770efef
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>
Add new command workroom-kill-with-buffers
---
workroom.el | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 44 insertions(+), 9 deletions(-)
diff --git a/workroom.el b/workroom.el
index 74a3a43b88..a41bf34ca9 100644
--- a/workroom.el
+++ b/workroom.el
@@ -846,16 +846,16 @@ ROOM is should be workroom object, or a name of a
workroom object."
(defun workroom-kill (room)
"Kill workroom ROOM.
-ROOM is should be workroom object, or a name of a workroom object."
+ROOM is should be a workroom, or a name of a workroom."
(interactive
(workroom--require-mode-enable
(list
(workroom--read
- "Kill workroom" (workroom-name (workroom-current-room))
- t (lambda (cand)
- (not
- (workroom-default-p
- (workroom-get (if (consp cand) (car cand) cand)))))))))
+ "Kill workroom" (workroom-name (workroom-current-room)) t
+ (lambda (cand)
+ (not
+ (workroom-default-p
+ (workroom-get (if (consp cand) (car cand) cand)))))))))
(workroom--barf-unless-enabled)
(setq room (if (stringp room)
(or (workroom-get room)
@@ -879,6 +879,42 @@ ROOM is should be workroom object, or a name of a workroom
object."
(delete room
(frame-parameter frame 'workroom-previous-room-list)))))
+(defun workroom-kill-with-buffers (room &optional kill-all)
+ "Kill workroom ROOM with all its buffers.
+
+A buffer is killed only if it doesn't belong to any other non-default
+workroom. However, interactively, when the prefix argument KILL-ALL
+is given, kill all buffer regardless of other workrooms.
+
+ROOM is should be a workroom, or a name of a workroom."
+ (interactive
+ (workroom--require-mode-enable
+ (list
+ (workroom--read
+ "Kill workroom (with its buffers)"
+ (workroom-name (workroom-current-room)) t
+ (lambda (cand)
+ (not
+ (workroom-default-p
+ (workroom-get (if (consp cand) (car cand) cand)))))))))
+ (workroom--barf-unless-enabled)
+ (setq room (if (stringp room)
+ (or (workroom-get room)
+ (signal 'wrong-type-argument
+ `(workroom-live-p . ,room)))
+ room))
+ (unless (workroomp room)
+ (signal 'wrong-type-argument `(workroomp . ,room)))
+ (let ((buffers (workroom-buffer-list room)))
+ (workroom-kill room)
+ (dolist (buffer buffers)
+ (and (or kill-all
+ (cl-every
+ (lambda (room)
+ (not (memq buffer (workroom-buffer-list room))))
+ workroom--rooms))
+ (kill-buffer buffer)))))
+
(defun workroom-kill-view (room view)
"Kill view VIEW of workroom ROOM.
@@ -1020,9 +1056,8 @@ ROOM is should be workroom object, or a name of a
workroom object."
(if current-prefix-arg
(workroom-get
(workroom--read
- "Parent workroom" (workroom-name
- (workroom-current-room))
- t))
+ "Parent workroom"
+ (workroom-name (workroom-current-room)) t))
(workroom-current-room)))
(view (workroom--read-view
room (format-message "Clone view of workroom `%s'"
- [nongnu] elpa/workroom 98d1158ef0 36/74: Fix key binding of "C-d" in command map, (continued)
- [nongnu] elpa/workroom 98d1158ef0 36/74: Fix key binding of "C-d" in command map, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 8e805c716e 51/74: Bump version to 2.0.2, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 64da63c1a9 67/74: Add Compat dependency, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom bb74cce814 60/74: Fix error when a frame is killed, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 1a0dd6b17d 65/74: Use format-prompt to format minibuffer prompts, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom fe38dc8aea 63/74: Bump version to 2.2, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom a82287cd5b 06/74: Add support for dynamic buffer list, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom c38489669e 18/74: Fix the defaults of workroom-switch, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 78f0d5ee9e 38/74: Accept prefix argument in workroom-kill-with-buffers, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom a014990432 28/74: Project integration, some refactoring, update README, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 9e486d8102 30/74: Add new command workroom-kill-with-buffers,
ELPA Syncer <=
- [nongnu] elpa/workroom ba1ca498d8 58/74: Switch to most recent workroom when kill the current workroom, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom c9c22ff707 35/74: Update README, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom ff72e2be15 64/74: Remove the use of undefined function, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 80d9c60ab3 16/74: Fix the keymap issue, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 94700152e5 13/74: Lower required Emacs version and elaborate README, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 2b4f883467 43/74: Fix workroom--project-name, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 731404dee1 32/74: Prefix "C-x x" conflicts, switch to "C-x c", ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 4e746fcd34 57/74: Bump version to 2.0.4, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom f695e59165 47/74: Fix member buffer checking in workroom-kill-with-buffers, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 934101a89f 49/74: Fix adding and removing buffer from workroom, ELPA Syncer, 2022/11/27