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

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

[elpa] externals/detached 4d63d7d6aa: Make detached list refresh on data


From: ELPA Syncer
Subject: [elpa] externals/detached 4d63d7d6aa: Make detached list refresh on database updates
Date: Fri, 23 Sep 2022 10:57:30 -0400 (EDT)

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

    Make detached list refresh on database updates
---
 CHANGELOG.org    |  1 +
 detached-init.el |  8 ++++++++
 detached-list.el | 19 ++++++++++++++-----
 detached.el      |  4 ++++
 4 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 84bb76036e..85709be751 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -9,6 +9,7 @@
 - Speed up initialization of sessions.
 - Narrow criteria are persistent and applied when resuming detached list 
sessions.
 - Add narrow criterion which searches through the output of all sessions in 
detached list which matches a regexp.
+- Add database hook in order for detached list to update automatically when a 
session is updated.
 
 * Version 0.9.1 (2022-09-22)
 
diff --git a/detached-init.el b/detached-init.el
index aa1c3af760..d6f3596a23 100644
--- a/detached-init.el
+++ b/detached-init.el
@@ -46,6 +46,7 @@
 (declare-function detached-eshell-mode "detached-eshell")
 (declare-function detached-extra-projectile-run-compilation "detached-extra")
 (declare-function detached-extra-dired-rsync "detached-extra")
+(declare-function detached-list--db-update "detached-list")
 (declare-function detached-org-babel-sh "detached-org")
 (declare-function detached-shell-override-history "detached-shell")
 (declare-function detached-shell-save-history-on-kill "detached-shell")
@@ -107,6 +108,7 @@
 (defun detached-init ()
   "Initialize `detached' integration with all packages."
   (detached-init--detached)
+  (detached-init--detached-list)
   (let ((init-functions
          (thread-last detached-init--package-integration
                       (seq-filter (lambda (it)
@@ -164,6 +166,12 @@
     (defvar embark-detached-map (make-composed-keymap detached-action-map 
embark-general-map))
     (add-to-list 'embark-keymap-alist '(detached . embark-detached-map))))
 
+(defun detached-init--detached-list ()
+  "Initialize `detached-list'."
+  ;; Trigger initialization of sessions upon load of `detached-list'
+  (with-eval-after-load 'detached-list
+    (add-hook 'detached-update-db-hooks #'detached-list--db-update)))
+
 (defun detached-init--detached ()
   "Initialize `detached'."
   ;; Trigger initialization of sessions upon load of `detached'
diff --git a/detached-list.el b/detached-list.el
index b4480ae534..435b9cc696 100644
--- a/detached-list.el
+++ b/detached-list.el
@@ -443,11 +443,7 @@ If prefix-argument is provided unmark instead of mark."
 (defun detached-list-sessions ()
   "Open list of `detached'."
   (interactive)
-  (if-let* ((existing-buffer
-             (seq-find (lambda (buffer)
-                         (with-current-buffer buffer
-                           (eq major-mode 'detached-list-mode)))
-                       (buffer-list)))
+  (if-let* ((existing-buffer (detached-list--get-list-mode-buffer))
             (window (display-buffer existing-buffer 
detached-list-display-buffer-action)))
       (with-selected-window window
         (detached-list--revert-sessions))
@@ -492,6 +488,19 @@ If prefix-argument is provided unmark instead of mark."
 
 ;;;; Support functions
 
+(defun detached-list--db-update ()
+  "Function to run when the database is updated."
+  (when-let ((detached-list-buffer (detached-list--get-list-mode-buffer)))
+    (with-current-buffer detached-list-buffer
+      (detached-list-revert))))
+
+(defun detached-list--get-list-mode-buffer ()
+  "Return buffer with `detached-list-mode'."
+  (seq-find (lambda (buffer)
+              (with-current-buffer buffer
+                (eq major-mode 'detached-list-mode)))
+            (buffer-list)))
+
 (defun detached-list--get-buffer (&optional filters)
   "Return buffer based on FILTERS."
   (get-buffer-create
diff --git a/detached.el b/detached.el
index f28784a1a6..447a528996 100644
--- a/detached.el
+++ b/detached.el
@@ -214,6 +214,9 @@ Valid values are: create, new and attach")
 (defvar detached-compile-session-hooks nil
   "Hooks to run when compiling a session.")
 
+(defvar detached-update-db-hooks nil
+  "Hooks to run when the database is updated.")
+
 (defvar detached-metadata-annotators-alist nil
   "An alist of annotators for metadata.")
 
@@ -1231,6 +1234,7 @@ Optionally make the path LOCAL to host."
 
 (defun detached--db-update-sessions ()
   "Write `detached--sessions' to database."
+  (run-hooks 'detached-update-db-hooks)
   (let ((db (expand-file-name "detached-sessions.db" detached-db-directory)))
     (with-temp-file db
       (insert (format ";; Detached Session Version: %s\n\n" 
detached-session-version))



reply via email to

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