Function: todo-edit-item--next-key
todo-edit-item--next-key is a byte-compiled function defined in
todo-mode.el.gz.
Signature
(todo-edit-item--next-key TYPE &optional ARG)
Source Code
;; Defined in /usr/src/emacs/lisp/calendar/todo-mode.el.gz
(defun todo-edit-item--next-key (type &optional arg)
(let* ((todo-param-key-alist '((edit . "e")
(header . "h")
(multiline . "m")
(diary . "y")
(nonmarking . "k")
(date . "d")
(time . "t")))
(done-param-key-alist '((add/edit . "c")
(delete . "d")))
(date-param-key-alist '((full . "f")
(calendar . "c")
(today . "a")
(dayname . "n")
(year . "y")
(month . "m")
(daynum . "d")))
(params (pcase type
('todo todo-param-key-alist)
('done done-param-key-alist)
('date date-param-key-alist)))
(p->k (mapconcat (lambda (elt)
(format "%s=>%s"
(propertize (cdr elt) 'face
'todo-key-prompt)
(concat (symbol-name (car elt))
(when (memq (car elt)
'(add/edit delete))
" comment"))))
params " "))
(key-prompt (substitute-command-keys
(concat "Press a key (so far `e"
(if (eq type 'date) " d" "")
"'): ")))
(this-key (let ((key (read-key (concat key-prompt p->k))))
(and (characterp key) (char-to-string key))))
(this-param (car (rassoc this-key params))))
(pcase this-param
('edit (todo-edit-item--text))
('header (todo-edit-item--text 'include-header))
('multiline (todo-edit-item--text 'multiline))
('add/edit (todo-edit-item--text 'comment-edit))
('delete (todo-edit-item--text 'comment-delete))
('diary (todo-edit-item--diary-inclusion))
('nonmarking (todo-edit-item--diary-inclusion 'nonmarking))
('date (todo-edit-item--next-key 'date arg))
('full (progn (todo-edit-item--header 'date)
(when todo-always-add-time-string
(todo-edit-item--header 'time))))
('calendar (todo-edit-item--header 'calendar))
('today (todo-edit-item--header 'today))
('dayname (todo-edit-item--header 'dayname))
('year (todo-edit-item--header 'year arg))
('month (todo-edit-item--header 'month arg))
('daynum (todo-edit-item--header 'day arg))
('time (todo-edit-item--header 'time)))))