[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/bufferlo d41a6b297b 17/37: Allow hidden buffers
|
From: |
ELPA Syncer |
|
Subject: |
[elpa] externals/bufferlo d41a6b297b 17/37: Allow hidden buffers |
|
Date: |
Sun, 5 Nov 2023 09:57:32 -0500 (EST) |
branch: externals/bufferlo
commit d41a6b297b3cdf88e4b78d08f83b0b253dca5357
Author: Florian Rommel <mail@florommel.de>
Commit: Florian Rommel <mail@florommel.de>
Allow hidden buffers
Hidden buffers are by default not shown in the local buffer list.
They are configured via bufferlo-hidden-buffers.
---
bufferlo.el | 46 +++++++++++++++++++++++++++++++++-------------
1 file changed, 33 insertions(+), 13 deletions(-)
diff --git a/bufferlo.el b/bufferlo.el
index 3521f1fff4..587d393073 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -92,6 +92,12 @@ Buffers included by `bufferlo-include-buffer-filters' take
precedence."
:group 'bufferlo
:type '(repeat string))
+(defcustom bufferlo-hidden-buffers nil
+ "Buffers that should be hidden in the local buffer lists,
+even if they are displayed in the current frame or tab."
+ :group 'bufferlo
+ :type '(repeat string))
+
(defcustom bufferlo-kill-buffers-exclude-filters
'("\\` " "\\`\\*Messages\\*\\'" "\\`\\*scratch\\*\\'")
"Buffers that should not be killed by `bufferlo-kill-buffers'.
@@ -147,27 +153,32 @@ This is a list of regular expressions that match buffer
names."
(advice-remove #'tab-bar-select-tab #'bufferlo--activate)
(advice-remove #'tab-bar--tab #'bufferlo--activate)))
-(defun bufferlo-local-buffer-p (buffer &optional frame tabnum)
+(defun bufferlo-local-buffer-p (buffer &optional frame tabnum include-hidden)
"Return whether BUFFER is in the list of local buffers.
A non-nil value of FRAME selects a specific frame instead of the current one.
If TABNUM is nil, the current tab is used. If it is non-nil, it specifies
-a tab index in the given frame."
- (memq buffer (bufferlo-buffer-list frame tabnum)))
+a tab index in the given frame. If INCLUDE-HIDDEN is set, include hidden
+buffers, see `bufferlo-hidden-buffers'."
+ (memq buffer (bufferlo-buffer-list frame tabnum include-hidden)))
-(defun bufferlo-non-local-buffer-p (buffer &optional frame tabnum)
+(defun bufferlo-non-local-buffer-p (buffer &optional frame tabnum
include-hidden)
"Return whether BUFFER is not in the list of local buffers.
A non-nil value of FRAME selects a specific frame instead of the current one.
If TABNUM is nil, the current tab is used. If it is non-nil, it specifies
-a tab index in the given frame."
- (not (bufferlo-local-buffer-p buffer frame tabnum)))
+a tab index in the given frame. If INCLUDE-HIDDEN is set, include hidden
+buffers, see `bufferlo-hidden-buffers'."
+ (not (bufferlo-local-buffer-p buffer frame tabnum include-hidden)))
+
+(defun bufferlo--buffer-predicate (buffer)
+ (bufferlo-local-buffer-p buffer nil nil t))
(defun bufferlo--set-buffer-predicate (frame)
- "Set the buffer predicate of FRAME to `bufferlo-local-buffer-p'."
- (set-frame-parameter frame 'buffer-predicate #'bufferlo-local-buffer-p))
+ "Set the buffer predicate of FRAME to `bufferlo--buffer-predicate'."
+ (set-frame-parameter frame 'buffer-predicate #'bufferlo--buffer-predicate))
(defun bufferlo--reset-buffer-predicate (frame)
- "Reset the buffer predicate of FRAME if it is `bufferlo-local-buffer-p'."
- (when (eq (frame-parameter frame 'buffer-predicate)
#'bufferlo-local-buffer-p)
+ "Reset the buffer predicate of FRAME if it is `bufferlo--buffer-predicate'."
+ (when (eq (frame-parameter frame 'buffer-predicate)
#'bufferlo--buffer-predicate)
(set-frame-parameter frame 'buffer-predicate nil)))
(defun bufferlo--merge-regexp-list (regexp-list)
@@ -226,11 +237,12 @@ a tab index in the given frame."
(mapcar 'get-buffer
(car (cdr (assq 'bufferlo-buffer-list (assq 'ws tab)))))))
-(defun bufferlo-buffer-list (&optional frame tabnum)
+(defun bufferlo-buffer-list (&optional frame tabnum include-hidden)
"Return a list of all live buffers associated with the current frame and tab.
A non-nil value of FRAME selects a specific frame instead of the current one.
If TABNUM is nil, the current tab is used. If it is non-nil, it specifies
-a tab index in the given frame."
+a tab index in the given frame. If INCLUDE-HIDDEN is set, include hidden
+buffers, see `bufferlo-hidden-buffers'."
(let ((list
(if tabnum
(let ((tab (nth tabnum (frame-parameter frame 'tabs))))
@@ -238,7 +250,15 @@ a tab index in the given frame."
(bufferlo--current-buffers frame)
(bufferlo--get-tab-buffers tab)))
(bufferlo--current-buffers frame))))
- (seq-filter #'buffer-live-p list)))
+ (if include-hidden
+ (seq-filter #'buffer-live-p list)
+ (seq-filter (lambda (buffer)
+ (let ((hidden (bufferlo--merge-regexp-list
+ (append '("a^") bufferlo-hidden-buffers))))
+ (and
+ (buffer-live-p buffer)
+ (not (string-match-p hidden (buffer-name buffer))))))
+ list))))
(defun bufferlo--window-state-get (oldfn &optional window writable)
"Save the frame's buffer-list to the window state.
- [elpa] branch externals/bufferlo created (now 6d27fbd704), ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 387b84d5de 03/37: Fix package-lint issues, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo a1bea7ff9e 01/37: Initial commit, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo f214f92445 08/37: Fix typos, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo e40613cbbc 22/37: Fix buffer selection in empty tabs, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 41e6e56783 27/37: Fix clone-frame, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 36f5c68460 26/37: Fix tab movement and duplication, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 0254201487 11/37: Add prefix argument to bufferlo-switch-to-buffer, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 778ede4d4b 35/37: Resolve checkdoc warnings, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo d41a6b297b 17/37: Allow hidden buffers,
ELPA Syncer <=
- [elpa] externals/bufferlo bfe906c2aa 12/37: Update README, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 931b9ee346 32/37: Version 0.2, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 1dd04e4b41 14/37: Better ibuffer support, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo c164b26a64 36/37: Compatibility improvements, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 82f51c31ab 23/37: desktop.el support: Fix error on deleted windows, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 8f82be00b1 30/37: Add basic buffer-menu support, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 914c381e9f 16/37: Fix buffer matching, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 46557c7f54 04/37: Minor changes, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo c000ff8398 09/37: Add bufferlo-non-local-buffer-p, ELPA Syncer, 2023/11/05
- [elpa] externals/bufferlo 23cbe682c4 15/37: More parameters, ELPA Syncer, 2023/11/05