diff options
author | Bastien Guerry <bzg@altern.org> | 2014-04-17 10:30:44 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2014-04-17 10:32:36 +0200 |
commit | 5ec31814f934b65c8071b320a3fd567b351e0e8f (patch) | |
tree | a7b10c2f4a20edf3c8ef37490937a93d1abc4fe8 | |
parent | b3f18b310b87abdeb34aa55e1d55fdd35bebf5c9 (diff) | |
download | org-mode-5ec31814f934b65c8071b320a3fd567b351e0e8f.tar.gz |
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.
-rw-r--r-- | lisp/org.el | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lisp/org.el b/lisp/org.el index 9557225..7cd96eb 100644 --- a/lisp/org.el +++ b/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) |