branch: externals/bufferlo
commit 1011fa5017d9f8e1ca775cac20f3ea4943ab4f5d
Author: shipmints <shipmi...@gmail.com>
Commit: shipmints <shipmi...@gmail.com>
    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)

Reply via email to