branch: elpa/gnosis
commit 7f31659cc106613a86c3b61d251e72724e8445f4
Author: Thanos Apollo <pub...@thanosapollo.org>
Commit: Thanos Apollo <pub...@thanosapollo.org>

    [Feature] Open file links in mcq & basic note types.
    
    + If a file link is found in keimenon it will be opened in a new window.
---
 gnosis.el | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnosis.el b/gnosis.el
index 4533f0700e..24085694c3 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -1089,6 +1089,7 @@ SUCCESS is a boolean value, t for success, nil for 
failure."
 
 (defun gnosis-review-mcq (id)
   "Review MCQ note with ID."
+  (gnosis-display-image (gnosis-get 'keimenon 'notes `(= id ,id)))
   (gnosis-display-keimenon (gnosis-org-format-string
                            (gnosis-get 'keimenon 'notes `(= id ,id))))
   (let* ((answer (car (gnosis-get 'answer 'notes `(= id ,id))))
@@ -1105,6 +1106,7 @@ SUCCESS is a boolean value, t for success, nil for 
failure."
         (parathema (gnosis-get 'parathema 'extras `(= id ,id)))
         (keimenon (gnosis-get 'keimenon 'notes `(= id ,id)))
         (answer (car (gnosis-get 'answer 'notes `(= id ,id)))))
+    (gnosis-display-image keimenon)
     (gnosis-display-keimenon (gnosis-org-format-string keimenon))
     (gnosis-display-hint hypothesis)
     (let* ((answer answer)
@@ -1217,22 +1219,16 @@ If NEW? is non-nil, increment new notes log by 1."
     (emacsql gnosis-db [:delete :from activity-log])))
 
 (defun gnosis-review--display-note (id)
-  "Display note with ID for review in the gnosis buffer.
-
-Handles buffer setup and calls the appropriate review function based
-on note type.  Returns nil if note is suspended, otherwise returns the
-review result."
-  (when (gnosis-suspended-p id)
-    (message "Suspended note with id: %s" id)
-    (sit-for 0.3)) ;; this should only occur in testing
+  "Display note with ID and call the appropriate review func."
   (let* ((type (gnosis-get 'type 'notes `(= id ,id)))
          (func-name (intern (format "gnosis-review-%s" (downcase type)))))
     (if (fboundp func-name)
         (progn
          (unless (eq major-mode 'gnosis-mode)
-           (pop-to-buffer-same-window (get-buffer-create "*gnosis*"))
+           (pop-to-buffer-same-window (get-buffer-create 
gnosis-review-buffer-name))
             (gnosis-mode)
            (gnosis-review-update-header 0))
+         (window-configuration-to-register :gnosis-pre-image)
           (funcall func-name id))
       (error "Malformed note type: '%s'" type))))
 
@@ -1247,6 +1243,7 @@ This is a helper function for `gnosis-review-session'."
        (note-count (or note-count 0)))
     (cl-incf note-count)
     (gnosis-review-actions success note note-count)
+    (jump-to-register :gnosis-pre-image)
     (gnosis-review-update-header note-count)
     note-count))
 
@@ -1256,7 +1253,7 @@ This is a helper function for `gnosis-review-session'."
 REVIEWED-COUNT: Total number of items that have been reviewed in
 current session.
 REMAINING-REVIEWS: Total number of remaining items to be reviewed."
-  (with-current-buffer (get-buffer-create "*gnosis*")
+  (with-current-buffer (get-buffer-create gnosis-review-buffer-name)
     (let ((remaining-reviews (or remaining-reviews gnosis-due-notes-total)))
       (setq-local header-line-format
                   (gnosis-center-string
@@ -1377,6 +1374,8 @@ To customize the keybindings, adjust 
`gnosis-review-keybindings'."
   (interactive)
   ;; Refresh modeline
   (setq gnosis-due-notes-total (length (gnosis-review-get-due-notes)))
+  ;; reset pre-image register
+  (set-register :gnosis-pre-image nil)
   ;; Select review type
   (let ((review-type
         (gnosis-completing-read "Review: "

Reply via email to