[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beframe aa3783c92d 1/2: Add commands to add/remove buff
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beframe aa3783c92d 1/2: Add commands to add/remove buffers from other frames |
Date: |
Thu, 2 Mar 2023 01:57:21 -0500 (EST) |
branch: externals/beframe
commit aa3783c92dabfa74386aa0ceebf74b48862d7b81
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Add commands to add/remove buffers from other frames
---
README.org | 12 ++++++++++++
beframe.el | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/README.org b/README.org
index c35dadbef9..55d783e842 100644
--- a/README.org
+++ b/README.org
@@ -104,6 +104,18 @@ of ~beframe-create-frame-scratch-buffer~. It kills the
frame-specific
scratch buffer after the frame is deleted. Set this user option to
~nil~ to disable the killing of such buffers.
+#+findex: beframe-assume-frame-buffers
+#+findex: beframe-add-frame-buffers
+The command ~beframe-assume-frame-buffers~ (alias
+~beframe-add-frame-buffers~) prompts for a frame and then copies its
+buffer list into the current frame.
+
+#+findex: beframe-unassume-frame-buffers
+#+findex: beframe-remove-frame-buffers
+The command ~beframe-unassume-frame-buffers~ (alias
+~beframe-remove-frame-buffers~) prompts for a frame and then removes
+its buffer list from the current frame.
+
* Features of ~beframe-mode~
:PROPERTIES:
:CUSTOM_ID: h:5b751614-8749-4aa8-aaed-f181beaddc57
diff --git a/beframe.el b/beframe.el
index ae72743704..1319dc671b 100644
--- a/beframe.el
+++ b/beframe.el
@@ -6,7 +6,7 @@
;; Maintainer: Protesilaos Stavrou General Issues
<~protesilaos/general-issues@lists.sr.ht>
;; URL: https://git.sr.ht/~protesilaos/beframe
;; Mailing-List: https://lists.sr.ht/~protesilaos/general-issues
-;; Version: 0.1.9
+;; Version: 0.1.10
;; Package-Requires: ((emacs "28.1"))
;; This file is NOT part of GNU Emacs.
@@ -69,6 +69,14 @@
;; frame-specific scratch buffer after the frame is deleted. Set this
;; user option to `nil' to disable the killing of such buffers.
;;
+;; The command `beframe-assume-frame-buffers' (alias
+;; `beframe-add-frame-buffers') prompts for a frame and then copies
+;; its buffer list into the current frame.
+;;
+;; The command `beframe-unassume-frame-buffers' (alias
+;; `beframe-remove-frame-buffers') prompts for a frame and then
+;; removes its buffer list from the current frame.
+;;
;; The `beframe-mode' does the following:
;;
;; - Sets the value of `read-buffer-function' to a function that
@@ -364,6 +372,44 @@ its placement and other parameters."
(beframe--frame-object (beframe--frame-prompt)))))
(display-buffer (beframe--list-buffers-noselect frame)))
+;;;###autoload
+(defun beframe-assume-frame-buffers (frame)
+ "Assume FRAME buffer list, copying it into current buffer list.
+When called interactively, prompt for FRAME using completion.
+Else FRAME must satisfy `framep'.
+
+Also see `beframe-unassume-frame-buffers'."
+ (interactive (list (beframe--frame-object (beframe--frame-prompt))))
+ (let* ((other-buffer-list (beframe--buffer-list frame))
+ (buffers (delete-dups (append other-buffer-list
(beframe--buffer-list)))))
+ (modify-frame-parameters
+ nil
+ `((buffer-list . ,buffers)))))
+
+(defalias 'beframe-add-frame-buffers 'beframe-assume-frame-buffers
+ "Alias of `beframe-assume-frame-buffers' command.")
+
+;;;###autoload
+(defun beframe-unassume-frame-buffers (frame)
+ "Unassume FRAME buffer list, removing it from current buffer list.
+When called interactively, prompt for FRAME using completion.
+Else FRAME must satisfy `framep'.
+
+Also see `beframe-assume-frame-buffers'."
+ (interactive (list (beframe--frame-object (beframe--frame-prompt))))
+ (let* ((other-buffer-list (beframe--buffer-list frame))
+ (new-buffer-list
+ (seq-filter
+ (lambda (buf)
+ (not (member buf other-buffer-list)))
+ (beframe--buffer-list))))
+ (modify-frame-parameters
+ nil
+ `((buffer-list . ,new-buffer-list)))))
+
+(defalias 'beframe-remove-frame-buffers 'beframe-unassume-frame-buffers
+ "Alias of `beframe-unassume-frame-buffers' command.")
+
;;; Minor mode setup
(defvar beframe--read-buffer-function nil