mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 20:07:46 +00:00
Merge branch 'maint'
This commit is contained in:
commit
6fee6b6cde
|
@ -5,7 +5,7 @@
|
|||
;; Author: Kyle Meyer <kyle@kyleam.com>
|
||||
;; URL: https://gitlab.com/kyleam/org-link-edit
|
||||
;; Keywords: convenience
|
||||
;; Version: 1.1.0
|
||||
;; Version: 1.1.1
|
||||
;; Package-Requires: ((cl-lib "0.5") (org "8.2.10"))
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
|
@ -373,17 +373,18 @@ END."
|
|||
(progn (goto-char pt)
|
||||
(org-link-edit--on-link-p)))
|
||||
(user-error "Cannot transport next link with point on a link"))
|
||||
(goto-char (car desc-bounds))
|
||||
(cl-multiple-value-bind (link-beg link-end link desc)
|
||||
(goto-char (or (car desc-bounds) pt))
|
||||
(cl-multiple-value-bind (link-beg link-end link orig-desc)
|
||||
(org-link-edit--next-link-data previous)
|
||||
(unless (or (not desc-bounds) (= (length desc) 0))
|
||||
(unless (or (not desc-bounds) (= (length orig-desc) 0))
|
||||
(user-error "Link already has a description"))
|
||||
(delete-region link-beg link-end)
|
||||
(insert (org-make-link-string
|
||||
link
|
||||
(and desc-bounds
|
||||
(if desc-bounds
|
||||
(delete-and-extract-region (car desc-bounds)
|
||||
(cdr desc-bounds))))))))
|
||||
(cdr desc-bounds))
|
||||
orig-desc))))))
|
||||
|
||||
(provide 'org-link-edit)
|
||||
;;; org-link-edit.el ends here
|
||||
|
|
|
@ -1012,6 +1012,74 @@
|
|||
(org-toggle-item t)
|
||||
(buffer-string)))))
|
||||
|
||||
(ert-deftest test-org-list/sort ()
|
||||
"Test `org-sort-list'."
|
||||
;; Sort alphabetically.
|
||||
(should
|
||||
(equal "- abc\n- def\n- xyz\n"
|
||||
(org-test-with-temp-text "- def\n- xyz\n- abc\n"
|
||||
(org-sort-list nil ?a)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "- xyz\n- def\n- abc\n"
|
||||
(org-test-with-temp-text "- def\n- xyz\n- abc\n"
|
||||
(org-sort-list nil ?A)
|
||||
(buffer-string))))
|
||||
;; Sort numerically.
|
||||
(should
|
||||
(equal "- 1\n- 2\n- 10\n"
|
||||
(org-test-with-temp-text "- 10\n- 1\n- 2\n"
|
||||
(org-sort-list nil ?n)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "- 10\n- 2\n- 1\n"
|
||||
(org-test-with-temp-text "- 10\n- 1\n- 2\n"
|
||||
(org-sort-list nil ?N)
|
||||
(buffer-string))))
|
||||
;; Sort by checked status.
|
||||
(should
|
||||
(equal "- [ ] xyz\n- [ ] def\n- [X] abc\n"
|
||||
(org-test-with-temp-text "- [X] abc\n- [ ] xyz\n- [ ] def\n"
|
||||
(org-sort-list nil ?x)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "- [X] abc\n- [ ] xyz\n- [ ] def\n"
|
||||
(org-test-with-temp-text "- [X] abc\n- [ ] xyz\n- [ ] def\n"
|
||||
(org-sort-list nil ?X)
|
||||
(buffer-string))))
|
||||
;; Sort by time stamp.
|
||||
(should
|
||||
(equal "- <2017-05-08 Mon>\n- <2017-05-09 Tue>\n- <2018-05-09 Wed>\n"
|
||||
(org-test-with-temp-text
|
||||
"- <2018-05-09 Wed>\n- <2017-05-09 Tue>\n- <2017-05-08 Mon>\n"
|
||||
(org-sort-list nil ?t)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "- <2018-05-09 Wed>\n- <2017-05-09 Tue>\n- <2017-05-08 Mon>\n"
|
||||
(org-test-with-temp-text
|
||||
"- <2018-05-09 Wed>\n- <2017-05-09 Tue>\n- <2017-05-08 Mon>\n"
|
||||
(org-sort-list nil ?T)
|
||||
(buffer-string))))
|
||||
;; Sort by custom function.
|
||||
(should
|
||||
(equal "- b\n- aa\n- ccc\n"
|
||||
(org-test-with-temp-text "- ccc\n- b\n- aa\n"
|
||||
(org-sort-list nil ?f
|
||||
(lambda ()
|
||||
(length (buffer-substring (point-at-bol)
|
||||
(point-at-eol))))
|
||||
#'<)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "- ccc\n- aa\n- b\n"
|
||||
(org-test-with-temp-text "- ccc\n- b\n- aa\n"
|
||||
(org-sort-list nil ?F
|
||||
(lambda ()
|
||||
(length (buffer-substring (point-at-bol)
|
||||
(point-at-eol))))
|
||||
#'<)
|
||||
(buffer-string)))))
|
||||
|
||||
|
||||
;;; Radio Lists
|
||||
|
||||
|
|
|
@ -2598,6 +2598,202 @@ http://article.gmane.org/gmane.emacs.orgmode/21459/"
|
|||
(org-test-with-temp-text "xx abc<point> xx"
|
||||
(org-in-regexp "abc" nil t))))
|
||||
|
||||
(ert-deftest test-org/sort-entries ()
|
||||
"Test `org-sort-entries'."
|
||||
;; Sort alphabetically.
|
||||
(should
|
||||
(equal "\n* abc\n* def\n* xyz\n"
|
||||
(org-test-with-temp-text "\n* def\n* xyz\n* abc\n"
|
||||
(org-sort-entries nil ?a)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "\n* xyz\n* def\n* abc\n"
|
||||
(org-test-with-temp-text "\n* def\n* xyz\n* abc\n"
|
||||
(org-sort-entries nil ?A)
|
||||
(buffer-string))))
|
||||
;; Sort numerically.
|
||||
(should
|
||||
(equal "\n* 1\n* 2\n* 10\n"
|
||||
(org-test-with-temp-text "\n* 10\n* 1\n* 2\n"
|
||||
(org-sort-entries nil ?n)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "\n* 10\n* 2\n* 1\n"
|
||||
(org-test-with-temp-text "\n* 10\n* 1\n* 2\n"
|
||||
(org-sort-entries nil ?N)
|
||||
(buffer-string))))
|
||||
;; Sort by custom function.
|
||||
(should
|
||||
(equal "\n* b\n* aa\n* ccc\n"
|
||||
(org-test-with-temp-text "\n* ccc\n* b\n* aa\n"
|
||||
(org-sort-entries nil ?f
|
||||
(lambda ()
|
||||
(length (buffer-substring (point-at-bol)
|
||||
(point-at-eol))))
|
||||
#'<)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "\n* ccc\n* aa\n* b\n"
|
||||
(org-test-with-temp-text "\n* ccc\n* b\n* aa\n"
|
||||
(org-sort-entries nil ?F
|
||||
(lambda ()
|
||||
(length (buffer-substring (point-at-bol)
|
||||
(point-at-eol))))
|
||||
#'<)
|
||||
(buffer-string))))
|
||||
;; Sort by TODO keyword.
|
||||
(should
|
||||
(equal "\n* TODO h1\n* TODO h3\n* DONE h2\n"
|
||||
(org-test-with-temp-text
|
||||
"\n* TODO h1\n* DONE h2\n* TODO h3\n"
|
||||
(org-sort-entries nil ?o)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "\n* DONE h2\n* TODO h1\n* TODO h3\n"
|
||||
(org-test-with-temp-text
|
||||
"\n* TODO h1\n* DONE h2\n* TODO h3\n"
|
||||
(org-sort-entries nil ?O)
|
||||
(buffer-string))))
|
||||
;; Sort by priority.
|
||||
(should
|
||||
(equal "\n* [#A] h2\n* [#B] h3\n* [#C] h1\n"
|
||||
(org-test-with-temp-text
|
||||
"\n* [#C] h1\n* [#A] h2\n* [#B] h3\n"
|
||||
(org-sort-entries nil ?p)
|
||||
(buffer-string))))
|
||||
(should
|
||||
(equal "\n* [#C] h1\n* [#B] h3\n* [#A] h2\n"
|
||||
(org-test-with-temp-text
|
||||
"\n* [#C] h1\n* [#A] h2\n* [#B] h3\n"
|
||||
(org-sort-entries nil ?P)
|
||||
(buffer-string))))
|
||||
;; Sort by creation time.
|
||||
(should
|
||||
(equal "
|
||||
* h3
|
||||
[2017-05-08 Mon]
|
||||
* h2
|
||||
[2017-05-09 Tue]
|
||||
* h1
|
||||
[2018-05-09 Wed]
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"
|
||||
* h1
|
||||
[2018-05-09 Wed]
|
||||
* h2
|
||||
[2017-05-09 Tue]
|
||||
* h3
|
||||
[2017-05-08 Mon]
|
||||
"
|
||||
(org-sort-entries nil ?c)
|
||||
(buffer-string))))
|
||||
|
||||
;; Sort by scheduled date.
|
||||
(should
|
||||
(equal "
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
"
|
||||
(org-sort-entries nil ?s)
|
||||
(buffer-string))))
|
||||
;; Sort by deadline date.
|
||||
(should
|
||||
(equal "
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
"
|
||||
(org-sort-entries nil ?d)
|
||||
(buffer-string))))
|
||||
;; Sort by any date/time
|
||||
(should
|
||||
(equal "
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"
|
||||
* TODO h2
|
||||
DEADLINE: <2017-05-09 Tue>
|
||||
* TODO h1
|
||||
DEADLINE: <2017-05-07 Sun>
|
||||
* TODO h3
|
||||
SCHEDULED: <2017-05-08 Mon>
|
||||
* TODO h4
|
||||
SCHEDULED: <2017-05-06 Sat>
|
||||
"
|
||||
(org-sort-entries nil ?t)
|
||||
(buffer-string))))
|
||||
;; Sort by clocking time.
|
||||
(should
|
||||
(equal "
|
||||
* clocked h2
|
||||
:LOGBOOK:
|
||||
CLOCK: [2017-05-09 Tue 00:15]--[2017-05-09 Tue 00:22] => 0:07
|
||||
CLOCK: [2017-05-09 Tue 00:00]--[2017-05-09 Tue 00:10] => 0:10
|
||||
:END:
|
||||
* clocked h1
|
||||
:LOGBOOK:
|
||||
CLOCK: [2017-05-09 Tue 00:15]--[2017-05-09 Tue 00:22] => 0:07
|
||||
CLOCK: [2017-05-09 Tue 00:00]--[2017-05-09 Tue 00:12] => 0:12
|
||||
:END:
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"
|
||||
* clocked h1
|
||||
:LOGBOOK:
|
||||
CLOCK: [2017-05-09 Tue 00:15]--[2017-05-09 Tue 00:22] => 0:07
|
||||
CLOCK: [2017-05-09 Tue 00:00]--[2017-05-09 Tue 00:12] => 0:12
|
||||
:END:
|
||||
* clocked h2
|
||||
:LOGBOOK:
|
||||
CLOCK: [2017-05-09 Tue 00:15]--[2017-05-09 Tue 00:22] => 0:07
|
||||
CLOCK: [2017-05-09 Tue 00:00]--[2017-05-09 Tue 00:10] => 0:10
|
||||
:END:
|
||||
"
|
||||
(org-sort-entries nil ?k)
|
||||
(buffer-string)))))
|
||||
|
||||
|
||||
;;; Navigation
|
||||
|
||||
|
|
Loading…
Reference in a new issue