0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-08-21 16:18:52 +00:00

org.el (org-sort-entries): Allow to sort by clocking time

* org.el (org-sort-entries): Allow to sort by clocking time.

Thanks to Noah Slater for this idea.
This commit is contained in:
Bastien Guerry 2014-04-17 10:30:44 +02:00
parent f2ec685008
commit 1cca8f534f

View file

@ -8585,20 +8585,21 @@ a time stamp, by a property, by priority order, or by a custom function.
The command prompts for the sorting type unless it has been given to the
function through the SORTING-TYPE argument, which needs to be a character,
\(?n ?N ?a ?A ?t ?T ?s ?S ?d ?D ?p ?P ?o ?O ?r ?R ?f ?F). Here is the
precise meaning of each character:
\(?n ?N ?a ?A ?t ?T ?s ?S ?d ?D ?p ?P ?o ?O ?r ?R ?f ?F ?k ?K). Here is
the precise meaning of each character:
n Numerically, by converting the beginning of the entry/item to a number.
a Alphabetically, ignoring the TODO keyword and the priority, if any.
o By order of TODO keywords.
t By date/time, either the first active time stamp in the entry, or, if
none exist, by the first inactive one.
s By the scheduled date/time.
d By deadline date/time.
c By creation time, which is assumed to be the first inactive time stamp
at the beginning of a line.
d By deadline date/time.
k By clocking time.
n Numerically, by converting the beginning of the entry/item to a number.
o By order of TODO keywords.
p By priority according to the cookie.
r By the value of a property.
s By scheduled date/time.
t By date/time, either the first active time stamp in the entry, or, if
none exist, by the first inactive one.
Capital letters will reverse the sort order.
@ -8675,8 +8676,8 @@ links."
(unless sorting-type
(message
"Sort %s: [a]lpha [n]umeric [p]riority p[r]operty todo[o]rder [f]unc
[t]ime [s]cheduled [d]eadline [c]reated
A/N/P/R/O/F/T/S/D/C means reversed:"
[t]ime [s]cheduled [d]eadline [c]reated cloc[k]ing
A/N/P/R/O/F/T/S/D/C/K means reversed:"
what)
(setq sorting-type (read-char-exclusive))
@ -8694,6 +8695,7 @@ links."
(mapcar 'list (org-buffer-property-keys t))
nil t))))
(when (member sorting-type '(?k ?K)) (org-clock-sum))
(message "Sorting entries...")
(save-restriction
@ -8728,6 +8730,8 @@ links."
(if (looking-at org-complex-heading-regexp)
(funcall case-func (org-sort-remove-invisible (match-string 4)))
nil))
((= dcst ?k)
(get-text-property (point) :org-clock-minutes))
((= dcst ?t)
(let ((end (save-excursion (outline-next-heading) (point))))
(if (or (re-search-forward org-ts-regexp end t)