mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-30 15:07:48 +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:
parent
b3f18b310b
commit
5ec31814f9
24
lisp/org.el
24
lisp/org.el
|
@ -8683,20 +8683,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.
|
||||
|
||||
|
@ -8775,8 +8776,8 @@ When sorting is done, call `org-after-sorting-entries-or-items-hook'."
|
|||
(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))
|
||||
|
||||
|
@ -8794,6 +8795,7 @@ When sorting is done, call `org-after-sorting-entries-or-items-hook'."
|
|||
(mapcar 'list (org-buffer-property-keys t))
|
||||
nil t))))
|
||||
|
||||
(when (member sorting-type '(?k ?K)) (org-clock-sum))
|
||||
(message "Sorting entries...")
|
||||
|
||||
(save-restriction
|
||||
|
@ -8828,6 +8830,8 @@ When sorting is done, call `org-after-sorting-entries-or-items-hook'."
|
|||
(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)
|
||||
|
|
Loading…
Reference in a new issue