[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/gnosis 40dbaf4c8d 3/7: dashboard: Create dashboard asynch.
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/gnosis 40dbaf4c8d 3/7: dashboard: Create dashboard asynch. |
Date: |
Tue, 10 Dec 2024 13:00:31 -0500 (EST) |
branch: elpa/gnosis
commit 40dbaf4c8dd272566d006ed9bbbb6fed23bfd203
Author: Thanos Apollo <public@thanosapollo.org>
Commit: Thanos Apollo <public@thanosapollo.org>
dashboard: Create dashboard asynch.
* Fix indentation
* Use #'run-with-itmer to create dashboard async
---
gnosis.el | 77 +++++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 48 insertions(+), 29 deletions(-)
diff --git a/gnosis.el b/gnosis.el
index 16625a7533..c740c5905c 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -882,7 +882,8 @@ is the image to display post review
(when (or (not (numberp correct-answer))
(equal correct-answer 0))
(error "Correct answer value must be the index number of the correct
answer"))
- (gnosis-add-note-fields deck "mcq" question choices correct-answer extra
tags suspend (car images) (cdr images)))
+ (gnosis-add-note-fields deck "mcq" question choices correct-answer extra
tags suspend
+ (car images) (cdr images)))
(defun gnosis-add-note-mcq (deck)
"Add note(s) of type `MCQ' interactively to selected deck.
@@ -1846,7 +1847,7 @@ NOTE-COUNT: Total notes reviewed
To customize the keybindings, adjust `gnosis-review-keybindings'."
(let* ((choice
(read-char-choice
- (format "Action: %sext gnosis, %sverride result, %suspend note,
%sdit note, %suit review session"
+ (format "Action: %sext gnosis, %sverride result, %suspend note,
%sdit note, %suit"
(propertize "n" 'face 'gnosis-face-review-action-next)
(propertize "o" 'face 'gnosis-face-review-action-override)
(propertize "s" 'face 'gnosis-face-review-action-suspend)
@@ -1889,21 +1890,26 @@ NOTE-COUNT: Total notes to be commited for session."
;; Refresh modeline
(setq gnosis-due-notes-total (length (gnosis-review-get-due-notes)))
;; Select review type
- (let ((review-type (gnosis-completing-read "Review: " '("Due notes"
- "Due notes of deck"
- "Due notes of
specified tag(s)"
- "Overdue notes"
- "Due notes (Without
Overdue)"
- "All notes of deck"
- "All notes of
tag(s)"))))
+ (let ((review-type
+ (gnosis-completing-read "Review: "
+ '("Due notes"
+ "Due notes of deck"
+ "Due notes of specified tag(s)"
+ "Overdue notes"
+ "Due notes (Without Overdue)"
+ "All notes of deck"
+ "All notes of tag(s)"))))
(pcase review-type
("Due notes" (gnosis-review-session (gnosis-collect-note-ids :due t) t))
("Due notes of deck" (gnosis-review-session
(gnosis-collect-note-ids :due t :deck
(gnosis--get-deck-id))))
- ("Due notes of specified tag(s)" (gnosis-review-session
(gnosis-collect-note-ids :due t :tags t)))
+ ("Due notes of specified tag(s)" (gnosis-review-session
+ (gnosis-collect-note-ids :due t :tags
t)))
("Overdue notes" (gnosis-review-session
(gnosis-review-get-overdue-notes)))
- ("Due notes (Without Overdue)" (gnosis-review-session
(gnosis-review-get-due-notes--no-overdue)))
- ("All notes of deck" (gnosis-review-session (gnosis-collect-note-ids
:deck (gnosis--get-deck-id))))
+ ("Due notes (Without Overdue)" (gnosis-review-session
+
(gnosis-review-get-due-notes--no-overdue)))
+ ("All notes of deck" (gnosis-review-session
+ (gnosis-collect-note-ids :deck
(gnosis--get-deck-id))))
("All notes of tag(s)" (gnosis-review-session (gnosis-collect-note-ids
:tags t))))))
@@ -2547,12 +2553,14 @@ If STRING-SECTION is nil, apply FACE to the entire
STRING."
(erase-buffer)
(gnosis-animate-string "Welcome to the Gnosis demo!" 2 nil "Gnosis demo"
'underline)
(sit-for 1)
- (gnosis-animate-string "Gnosis is a tool designed to create a gnostikon" 3
nil "gnostikon" 'bold-italic)
+ (gnosis-animate-string "Gnosis is a tool designed to create a gnosiotheke"
+ 3 nil "gnosiotheke" 'bold-italic)
(sit-for 1.5)
(gnosis-animate-string "--A place to store & test your knowledge--" 4 nil
nil 'italic)
(sit-for 1)
- (gnosis-animate-string "The objective of gnosis is to maximize memory
retention, through repetition." 6 nil
- "maximize memory retention" 'underline)
+ (gnosis-animate-string
+ "The objective of gnosis is to maximize memory retention, through
repetition." 6 nil
+ "maximize memory retention" 'underline)
(sit-for 1)
(gnosis-animate-string "Remember, repetitio est mater memoriae" 8 nil
"repetitio est mater memoriae" 'bold-italic)
@@ -2560,7 +2568,8 @@ If STRING-SECTION is nil, apply FACE to the entire
STRING."
(gnosis-animate-string "-- repetition is the mother of memory --" 9 nil
"repetition is the mother of memory" 'italic)
(sit-for 1)
- (gnosis-animate-string "Consistency is key; be sure to do your daily
reviews!" 11 nil "Consistency is key" 'bold)
+ (gnosis-animate-string "Consistency is key; be sure to do your daily
reviews!"
+ 11 nil "Consistency is key" 'bold)
(sit-for 1)
(when (y-or-n-p "Try out demo gnosis review session?")
(gnosis-demo-create-deck)
@@ -2586,7 +2595,7 @@ If STRING-SECTION is nil, apply FACE to the entire
STRING."
:tags note-tags)
(gnosis-add-note--mcq :deck deck-name
:question "Which one is the capital of
Greece?"
- :choices '("Athens" "Sparta" "Rome"
"Berlin")
+ :choices '("Athens" "Sparta" "Nafplio"
"Constantinople")
:correct-answer 1
:extra "Athens (Ἀθήνα) is the largest city
of Greece & one of the world's oldest cities, with it's recorded history
spanning over 3,500 years."
:tags note-tags)
@@ -2732,19 +2741,29 @@ Skips days where no note was reviewed."
(gnosis-dashboard-enable-mode)
(gnosis-dashboard-notes-mode)
(setf tabulated-list-format `[("Main" ,(/ (window-width) 4) t)
- ("Options" ,(/ (window-width) 6) t)
- ("Answer" ,(/ (window-width) 6) t)
- ("Tags" ,(/ (window-width) 5) t)
- ("Type" ,(/ (window-width) 10) T)
- ("Suspend" ,(/ (window-width) 6) t)]
- tabulated-list-entries (cl-loop for id in note-ids
- for output =
(gnosis-dashboard-output-note id)
- when output
- collect (list (number-to-string id)
(vconcat output)))
- gnosis-dashboard-note-ids note-ids)
+ ("Options" ,(/ (window-width) 6) t)
+ ("Answer" ,(/ (window-width) 6) t)
+ ("Tags" ,(/ (window-width) 5) t)
+ ("Type" ,(/ (window-width) 10) T)
+ ("Suspend" ,(/ (window-width) 6) t)]
+ gnosis-dashboard-note-ids note-ids
+ tabulated-list-entries nil)
+ (make-local-variable 'tabulated-list-entries)
(tabulated-list-init-header)
- (tabulated-list-print t)
- (setf gnosis-dashboard--current `(:type notes :ids ,note-ids)))
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert "Loading notes..."))
+ (run-with-timer 0.1 nil
+ (lambda ()
+ (let ((entries
+ (cl-loop for id in note-ids
+ for output = (gnosis-dashboard-output-note
id)
+ when output
+ collect (list (number-to-string id)
(vconcat output)))))
+ (with-current-buffer gnosis-dashboard-buffer-name
+ (setq tabulated-list-entries entries)
+ (tabulated-list-print t)
+ (setf gnosis-dashboard--current `(:type notes :ids
,note-ids)))))))
(defun gnosis-dashboard-deck-note-count (id)
"Return total note count for deck with ID."
- [nongnu] elpa/gnosis updated (eefd0abb3c -> 112693dd65), ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis 01c37bdbc7 1/7: db: Refactor pragma operations without using strings., ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis 710340b5f2 5/7: manifest: Use emacs-minimal., ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis 3fdcb65b0f 2/7: dashboard-streak: Limit to 666 days, ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis 112693dd65 7/7: Version bump: 0.4.9, ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis ab980e8153 6/7: Update docs, ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis b27b930f3e 4/7: makefile: Update tests, ELPA Syncer, 2024/12/10
- [nongnu] elpa/gnosis 40dbaf4c8d 3/7: dashboard: Create dashboard asynch.,
ELPA Syncer <=