branch: externals/bufferlo
commit 1011fa5017d9f8e1ca775cac20f3ea4943ab4f5d
Author: shipmints <[email protected]>
Commit: shipmints <[email protected]>
Add bufferlo-session-save-current-interactive
And its alias and menu item.
---
bufferlo.el | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/bufferlo.el b/bufferlo.el
index 0e8a6d664c..39b15da374 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -788,6 +788,7 @@ suboptimal results for your platform."
("Session Bookmarks"
["Create..." bufferlo-sess-save :help "Create a new
session bookmark"]
["Load..." bufferlo-sess-load :help "Load a session
bookmark"]
+ ["Save Current..." bufferlo-sess-save-curr :help "Save the
specified session bookmarks"]
["Close/Kill..." bufferlo-sess-close :help "Close the
specified session bookmarks (kills frames, tabs, buffers)"]
["Clear..." bufferlo-sess-clear :help "Clear the
specified session bookmark (does not kill frames, tabs, buffers)"]
)
@@ -2340,6 +2341,23 @@ throwing away the old one."
(comps (bufferlo--bookmark-completing-read (format "Add bookmark(s)
to %s: " bookmark-name) abm-names)))
(bufferlo--session-save bookmark-name comps abms no-overwrite)))
+(defun bufferlo-session-save-current-interactive ()
+ "Save the active bookmark constituents in selected sessions."
+ (interactive)
+ (let* ((candidates (mapcar #'car bufferlo--active-sessions))
+ (comps (bufferlo--bookmark-completing-read "Select sessions to save:
" candidates)))
+ (let* ((abms (bufferlo--active-bookmarks))
+ (abm-names (mapcar #'car abms))
+ (abm-names-to-save))
+ (dolist (sess-name comps)
+ (setq abm-names-to-save
+ (append abm-names-to-save
+ (seq-intersection
+ (alist-get 'bufferlo-bookmark-names (assoc sess-name
bufferlo--active-sessions))
+ abm-names))))
+ (setq abm-names-to-save (seq-uniq abm-names-to-save))
+ (bufferlo--bookmarks-save abm-names-to-save abms))))
+
(defun bufferlo-session-load-interactive ()
"Prompt for bufferlo session bookmarks to load."
(interactive)
@@ -3187,6 +3205,7 @@ OLDFN BOOKMARK-NAME BATCH"
(defalias 'bufferlo-bm-frame-load-merge 'bufferlo-bookmark-frame-load-merge)
(defalias 'bufferlo-bm-frame-close-curr 'bufferlo-delete-frame-kill-buffers)
(defalias 'bufferlo-sess-save 'bufferlo-session-save-interactive)
+(defalias 'bufferlo-sess-save-curr
'bufferlo-session-save-current-interactive)
(defalias 'bufferlo-sess-load 'bufferlo-session-load-interactive)
(defalias 'bufferlo-sess-close 'bufferlo-session-close-interactive)
(defalias 'bufferlo-sess-clear 'bufferlo-session-clear-interactive)