aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Webster <brandon.webster@socrata.com>2020-04-05 10:35:38 -0700
committerBrandon Webster <brandon.webster@socrata.com>2020-04-05 10:35:38 -0700
commit91b9e5fd17fbb756621be9e83977a48dfc69123c (patch)
tree867b671ae375cff897e07c53f5e9476c249967c8
parentbb134301db6855d2433361f38f9c408984009c45 (diff)
downloadorg-drill-91b9e5fd17fbb756621be9e83977a48dfc69123c.tar.gz
org-drill-91b9e5fd17fbb756621be9e83977a48dfc69123c.zip
Allow Creating New Session in Cram Mode
A current session does not exist when `org-drill-cram` is called, so it's current behavior of toggling the `crame-mode` property doesn't seem to do anything. This change allows it to inform `org-drill` to create a new session in "cram mode." I'm not sure if this is the proper way to impliment this relative to the rest of the codebase, which I'm still a little unfamiliar with. But I thought this pr would still be useful, if only to create discussion.
-rw-r--r--org-drill.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/org-drill.el b/org-drill.el
index 8ae749a..d4e5dce 100644
--- a/org-drill.el
+++ b/org-drill.el
@@ -2855,7 +2855,7 @@ STATUS is one of the following values:
(setf (oref session warned-about-id-creation) t))
(org-id-get-create))
-(defun org-drill (&optional scope drill-match resume-p)
+(defun org-drill (&optional scope drill-match resume-p cram)
"Begin an interactive 'drill session'. The user is asked to
review a series of topics (headers). Each topic is initially
presented as a 'question', often with part of the topic content
@@ -2888,7 +2888,10 @@ todo query. Only items matching the query will be considered.
It accepts the same values as `org-drill-match', which see.
If RESUME-P is non-nil, resume a suspended drill session rather
-than starting a new one."
+than starting a new one.
+
+CRAM, if non-nil, will start a new session in cram mode. If
+resuming a suspended session, this parameter is ignored."
(interactive)
;; Check org version. Org 7.9.3f introduced a backwards-incompatible change
@@ -2909,7 +2912,8 @@ work correctly with older versions of org mode. Your org mode version (%s) appea
(cl-block org-drill
(unless resume-p
(org-drill-free-markers session t)
- (setf (oref session current-item) nil
+ (setf (oref session cram-mode) cram
+ (oref session current-item) nil
(oref session done-entries) nil
(oref session dormant-entry-count) 0
(oref session due-entry-count) 0
@@ -2980,8 +2984,7 @@ all drill items are considered to be due for review, unless they
have been reviewed within the last `org-drill-cram-hours'
hours."
(interactive)
- (setq (oref session cram-mode) t)
- (org-drill scope drill-match))
+ (org-drill scope drill-match nil t))
(defun org-drill-cram-tree ()
"Run an interactive drill session in 'cram mode' using subtree at point.