From 193e50cfabfa4d4f3d7033000540619b7f8c29e8 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Mon, 4 Mar 2024 03:41:59 +0200 Subject: Refactor editing notes for recursive edits Adjust gnosis-edit-save-exit func for recursive-edit arg. If not given any just pop back to gnosis-dashboard, else exit recursive edit. gnosis-edit-note will be called either in a recursive edit during note review or from the dashboard. --- gnosis.el | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'gnosis.el') diff --git a/gnosis.el b/gnosis.el index 9bea7a8..a0bf469 100644 --- a/gnosis.el +++ b/gnosis.el @@ -1177,7 +1177,7 @@ NOTES: List of note ids" (?q "quit")))) (?n nil) (?s (gnosis-suspend-note note)) - (?e (gnosis-edit-note note) + (?e (gnosis-edit-note note t) (recursive-edit)) (?q (gnosis-review-commit note-count) (cl-return))) @@ -1231,7 +1231,9 @@ changes." ":tags" ":extra-notes" ":image" ":second-image" ":ef" ":ff" ":suspend") (local-unset-key (kbd "C-c C-c")) - (local-set-key (kbd "C-c C-c") (lambda () (interactive) (gnosis-edit-save-exit t 'gnosis-dashboard "Notes")))) + (local-set-key (kbd "C-c C-c") (lambda () (interactive) (if recursive-edit + (gnosis-edit-save-exit 'exit-recursive-edit) + (gnosis-edit-save-exit 'gnosis-dashboard "Notes"))))) (defun gnosis-edit-deck--export (id) "Export deck with ID. @@ -1309,17 +1311,14 @@ FAILURE-FACTOR: Failure factor value" (gnosis-edit-read-only-values (format ":id %s" id) ":name" ":ef-increase" ":ef-decrease" ":ef-threshold" ":failure-factor") (local-unset-key (kbd "C-c C-c")) - (local-set-key (kbd "C-c C-c") (lambda () (interactive) (gnosis-edit-save-exit t 'gnosis-dashboard "Decks"))))) + (local-set-key (kbd "C-c C-c") (lambda () (interactive) (gnosis-edit-save-exit 'gnosis-dashboard "Decks"))))) -(cl-defun gnosis-edit-save-exit (&optional deck-edit (exit-func 'exit-recursive-edit) &rest args) - "Save edits and exit. - -If not DECK-EDIT and not in a recursive-edit, pop back -gnosis-dashboard." +(cl-defun gnosis-edit-save-exit (&optional exit-func &rest args) + "Save edits and exit using EXIT-FUNC, with ARGS." (interactive) - (let ((deck-edit (or deck-edit nil))) - (eval-buffer) - (quit-window t) + (eval-buffer) + (quit-window t) + (when exit-func (apply exit-func args))) (defvar-keymap gnosis-edit-mode-map -- cgit v1.2.3