emacs-elpa-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]