From 45c45027138624eb586d7ccca06226e333dd8c5a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 29 Nov 2017 15:09:44 +0100 Subject: [PATCH] org-capture: Re-introduce history list per prompt * lisp/org-capture.el (org-capture--prompt-history-table): (org-capture--prompt-history): New variables. (org-capture-fill-template): Handle history list per prompt. Reported-by: Karl Eichwalder --- lisp/org-capture.el | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lisp/org-capture.el b/lisp/org-capture.el index 2222bf462..032102108 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -79,6 +79,12 @@ (defvar org-capture-is-refiling nil "Non-nil when capture process is refiling an entry.") +(defvar org-capture--prompt-history-table (make-hash-table :test #'equal) + "Hash table for all history lists per prompt.") + +(defvar org-capture--prompt-history nil + "History list for prompt placeholders.") + (defgroup org-capture nil "Options concerning capturing new entries." :tag "Org Capture" @@ -1797,13 +1803,20 @@ The template may still contain \"%?\" for cursor positioning." (member key '("u" "U")) nil nil (list org-end-time-was-given)))) (`nil + ;; Load history list for current prompt. + (setq org-capture--prompt-history + (gethash prompt org-capture--prompt-history-table)) (push (org-completing-read (concat (or prompt "Enter string") (and default (format " [%s]" default)) ": ") - completions nil nil nil nil default) + completions + nil nil nil 'org-capture--prompt-history default) strings) - (insert (car strings))) + (insert (car strings)) + ;; Save updated history list for current prompt. + (puthash prompt org-capture--prompt-history + org-capture--prompt-history-table)) (_ (error "Unknown template placeholder: \"%%^%s\"" key)))))))) -- 2.11.4.GIT