diff options
author | jao <jao@gnu.org> | 2025-09-22 13:14:06 +0100 |
---|---|---|
committer | jao <jao@gnu.org> | 2025-09-22 13:14:06 +0100 |
commit | b1434dd1cbbf923385e4eef6ed288225e5280037 (patch) | |
tree | 422e036612a4f08c05421d49d59d99ae9fd5ad43 /lib/doc | |
parent | f111725d0543c491e694b40de1825d8535c1e1f4 (diff) | |
download | elibs-b1434dd1cbbf923385e4eef6ed288225e5280037.tar.gz elibs-b1434dd1cbbf923385e4eef6ed288225e5280037.tar.bz2 |
jao-doc-session: easier spec of saved docs
Diffstat (limited to 'lib/doc')
-rw-r--r-- | lib/doc/jao-doc-session.el | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/doc/jao-doc-session.el b/lib/doc/jao-doc-session.el index 877a8cb..b54a942 100644 --- a/lib/doc/jao-doc-session.el +++ b/lib/doc/jao-doc-session.el @@ -1,6 +1,6 @@ ;;; jao-doc-session.el --- persistent document sessions -*- lexical-binding: t; -*- -;; Copyright (C) 2022, 2024 jao +;; Copyright (C) 2022, 2024, 2025 jao ;; Author: jao <mail@jao.io> ;; Keywords: docs @@ -22,11 +22,14 @@ (persist-defvar jao-doc-session nil "Documents session") -(defvar-local jao-doc-session--is-doc nil) +(defvar-local jao-doc-session-is-doc nil + "Setting this variable as t in a buffer will mark it as belonging to a session. + +See also `jao-doc-session-mark'.") (defun jao-doc-session-is-doc (&optional buffer) "Check whether the given or current buffer belong to the doc session." - (buffer-local-value 'jao-doc-session--is-doc (or buffer (current-buffer)))) + (buffer-local-value 'jao-doc-session-is-doc (or buffer (current-buffer)))) (defun jao-doc-session (&optional file) jao-doc-session) @@ -36,24 +39,24 @@ (let ((docs '()) (cb (and skip-current (current-buffer)))) (dolist (b (buffer-list)) - (when-let (fs (and (not (eq cb b)) (jao-doc-session-is-doc b))) + (when-let* ((fs (and (not (eq cb b)) (jao-doc-session-is-doc b))) + (fs (if (listp fs) fs (list (buffer-file-name b))))) (dolist (f fs) (add-to-list 'docs f)))) (when (or force (> (length docs) 0)) (setq jao-doc-session docs)))) (defun jao-doc-session-mark (&optional path) "Mark the current buffer's file, or PATH, as persistent across sessions." - (unless (listp jao-doc-session--is-doc) - (setq jao-doc-session--is-doc (ensure-list jao-doc-session--is-doc))) - (cl-pushnew (or path (buffer-file-name)) jao-doc-session--is-doc) + (unless (listp jao-doc-session-is-doc) + (setq jao-doc-session-is-doc (ensure-list jao-doc-session-is-doc))) + (cl-pushnew (or path (buffer-file-name)) jao-doc-session-is-doc) (jao-doc-session-save)) (defun jao-doc-session--maybe-save () (when (jao-doc-session-is-doc) (jao-doc-session-save t))) -(defvar jao-doc-session-inhibit-save nil) - (add-hook 'kill-buffer-hook #'jao-doc-session--maybe-save) +(add-hook 'kill-emacs-hook #'jao-doc-session-save) (provide 'jao-doc-session) ;;; jao-doc-session.el ends here |