Change: Improve TODO grouping

This commit is contained in:
Adam Porter 2018-06-08 18:05:17 -05:00
parent 73925c8f1c
commit a134e34fd8

View file

@ -285,13 +285,11 @@ PREDICATES is a list of one or more sorting methods, including:
(let* ((grouped-items (--group-by (when-let (keyword (org-element-property :todo-keyword it)) (let* ((grouped-items (--group-by (when-let (keyword (org-element-property :todo-keyword it))
(substring-no-properties keyword)) (substring-no-properties keyword))
items)) items))
(sorted-groups (--sort (let* ((it-pos (todo-keyword-pos (car it))) (sorted-groups (cl-sort grouped-items #'<
(other-pos (todo-keyword-pos (car other)))) :key (lambda (keyword)
(cond ((and it-pos other-pos) (or (cl-position (car keyword) org-todo-keywords-1 :test #'string=)
(< it-pos other-pos)) ;; Put at end of list if not found
(it-pos t) (1+ (length org-todo-keywords-1)))))))
(other-pos nil)))
grouped-items)))
(-flatten-n 1 (-map #'cdr sorted-groups))))) (-flatten-n 1 (-map #'cdr sorted-groups)))))
(cl-loop for pred in (nreverse predicates) (cl-loop for pred in (nreverse predicates)
do (setq items (if (eq pred 'todo) do (setq items (if (eq pred 'todo)