[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 1e4c6f8: * lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code cl
From: |
Juri Linkov |
Subject: |
master 1e4c6f8: * lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use. |
Date: |
Wed, 4 Dec 2019 18:01:00 -0500 (EST) |
branch: master
commit 1e4c6f8333989ffe16cdffa2e082a061274f1e4e
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>
* lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use.
---
lisp/tab-bar.el | 76 ++++++++++++++++++++++++++++-----------------------------
1 file changed, 38 insertions(+), 38 deletions(-)
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index dc6d2d0..acc4304 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -1296,6 +1296,44 @@ in the selected frame."
((framep all-frames) (list all-frames))
(t (list (selected-frame)))))
+(defun tab-bar-get-buffer-tab (buffer-or-name &optional all-frames)
+ "Return a tab owning a window whose buffer is BUFFER-OR-NAME.
+BUFFER-OR-NAME may be a buffer or a buffer name and defaults to
+the current buffer.
+
+The optional argument ALL-FRAMES specifies the frames to consider:
+
+- t means consider all tabs on all existing frames.
+
+- `visible' means consider all tabs on all visible frames.
+
+- A frame means consider all tabs on that frame only.
+
+Any other value of ALL-FRAMES means consider all tabs on the
+selected frame and no others."
+ (let ((buffer (if buffer-or-name
+ (get-buffer buffer-or-name)
+ (current-buffer))))
+ (when (bufferp buffer)
+ (seq-some
+ (lambda (frame)
+ (seq-some
+ (lambda (tab)
+ (when (if (eq (car tab) 'current-tab)
+ (get-buffer-window buffer frame)
+ (let* ((state (cdr (assq 'ws tab)))
+ (buffers (when state
+ (window-state-buffers state))))
+ (or
+ ;; non-writable window-state
+ (memq buffer buffers)
+ ;; writable window-state
+ (member (buffer-name buffer) buffers))))
+ (append tab `((index . ,(tab-bar--tab-index tab nil frame))
+ (frame . ,frame)))))
+ (funcall tab-bar-tabs-function frame)))
+ (tab-bar--reusable-frames all-frames)))))
+
(defun display-buffer-in-tab (buffer alist)
"Display BUFFER in a tab.
ALIST is an association list of action symbols and values. See
@@ -1346,44 +1384,6 @@ indirectly called by the latter."
(let ((tab-bar-new-tab-choice t))
(tab-bar-new-tab))))))
-(defun tab-bar-get-buffer-tab (buffer-or-name &optional all-frames)
- "Return a tab owning a window whose buffer is BUFFER-OR-NAME.
-BUFFER-OR-NAME may be a buffer or a buffer name and defaults to
-the current buffer.
-
-The optional argument ALL-FRAMES specifies the frames to consider:
-
-- t means consider all tabs on all existing frames.
-
-- `visible' means consider all tabs on all visible frames.
-
-- A frame means consider all tabs on that frame only.
-
-Any other value of ALL-FRAMES means consider all tabs on the
-selected frame and no others."
- (let ((buffer (if buffer-or-name
- (get-buffer buffer-or-name)
- (current-buffer))))
- (when (bufferp buffer)
- (seq-some
- (lambda (frame)
- (seq-some
- (lambda (tab)
- (when (if (eq (car tab) 'current-tab)
- (get-buffer-window buffer frame)
- (let* ((state (cdr (assq 'ws tab)))
- (buffers (when state
- (window-state-buffers state))))
- (or
- ;; non-writable window-state
- (memq buffer buffers)
- ;; writable window-state
- (member (buffer-name buffer) buffers))))
- (append tab `((index . ,(tab-bar--tab-index tab nil frame))
- (frame . ,frame)))))
- (funcall tab-bar-tabs-function frame)))
- (tab-bar--reusable-frames all-frames)))))
-
(defun switch-to-buffer-other-tab (buffer-or-name &optional norecord)
"Switch to buffer BUFFER-OR-NAME in another tab.
Like \\[switch-to-buffer-other-frame] (which see), but creates a new tab."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 1e4c6f8: * lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use.,
Juri Linkov <=