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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/detached 1972adc1d3 1/3: Add command to initialize sess


From: ELPA Syncer
Subject: [elpa] externals/detached 1972adc1d3 1/3: Add command to initialize session directory
Date: Wed, 5 Oct 2022 15:57:29 -0400 (EDT)

branch: externals/detached
commit 1972adc1d3d10ff6794074e6ece0927feed1ef0b
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>

    Add command to initialize session directory
    
    Optionally initialize all session directories if prefix argument is
    provided.
---
 detached-list.el | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/detached-list.el b/detached-list.el
index 7344ec26e5..caa6cc689e 100644
--- a/detached-list.el
+++ b/detached-list.el
@@ -100,6 +100,21 @@ detached list implements."
 
 ;;;; Commands
 
+(defun detached-list-initialize-session-directory (&optional all)
+  "Initialize a session-directory.
+
+Optionally initialize ALL session-directories."
+  (interactive "P")
+  (when-let* ((uninitialized-directories
+               (thread-last (detached-get-sessions)
+                            (seq-filter #'detached--uninitialized-session-p)
+                            (seq-map #'detached--session-directory)
+                            (seq-uniq))))
+    (if all
+        (seq-do #'detached-list--initialize-directory 
uninitialized-directories)
+      (when-let ((directory (completing-read "Initialize directory: " 
uninitialized-directories)))
+        (detached-list--initialize-directory directory)))))
+
 (defun detached-list-edit-annotation (session)
   "Edit SESSION's annotation."
   (interactive
@@ -510,6 +525,12 @@ If prefix-argument is provided unmark instead of mark."
 
 ;;;; Support functions
 
+(defun detached-list--initialize-directory (directory)
+  "Initialize sessions in DIRECTORY."
+  (thread-last (detached-get-sessions)
+               (seq-filter (lambda (it) (string= directory 
(detached--session-directory it))))
+               (seq-do #'detached--initialize-session)))
+
 (defun detached-list--db-update ()
   "Function to run when the database is updated."
   (when-let ((detached-list-buffer (detached-list--get-list-mode-buffer)))
@@ -626,6 +647,7 @@ If prefix-argument is provided unmark instead of mark."
     (define-key map (kbd "d") #'detached-list-delete-session)
     (define-key map (kbd "f") #'detached-list-select-filter)
     (define-key map (kbd "g") #'detached-list-revert)
+    (define-key map (kbd "i") #'detached-list-initialize-session-directory)
     (define-key map (kbd "j") #'imenu)
     (define-key map (kbd "k") #'detached-list-kill-session)
     (define-key map (kbd "m") #'detached-list-mark-session)



reply via email to

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