mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 20:07:46 +00:00
org-element: New `org-element-down' function
* contrib/lisp/org-element.el (org-element-down): New function. * testing/lisp/test-org-element.el: Add test.
This commit is contained in:
parent
1a42967061
commit
86131a8b50
|
@ -3859,6 +3859,17 @@ modified."
|
||||||
((org-before-first-heading-p) (error "No surrounding element"))
|
((org-before-first-heading-p) (error "No surrounding element"))
|
||||||
(t (org-back-to-heading))))))))))
|
(t (org-back-to-heading))))))))))
|
||||||
|
|
||||||
|
(defun org-element-down ()
|
||||||
|
"Move to inner element."
|
||||||
|
(interactive)
|
||||||
|
(let ((element (org-element-at-point)))
|
||||||
|
(cond
|
||||||
|
((eq (org-element-type element) 'plain-list)
|
||||||
|
(forward-char))
|
||||||
|
((memq (org-element-type element) org-element-greater-elements)
|
||||||
|
(goto-char (org-element-property :contents-begin element)))
|
||||||
|
(t (error "No inner element")))))
|
||||||
|
|
||||||
|
|
||||||
(provide 'org-element)
|
(provide 'org-element)
|
||||||
;;; org-element.el ends here
|
;;; org-element.el ends here
|
||||||
|
|
|
@ -312,6 +312,21 @@ Outside."
|
||||||
(org-element-up)
|
(org-element-up)
|
||||||
(should (looking-at "\\* Top"))))
|
(should (looking-at "\\* Top"))))
|
||||||
|
|
||||||
|
(ert-deftest test-org-elemnet/down-element ()
|
||||||
|
"Test `org-element-down' specifications."
|
||||||
|
;; 1. Error when the element hasn't got a recursive type.
|
||||||
|
(org-test-with-temp-text "Paragraph."
|
||||||
|
(should-error (org-element-down)))
|
||||||
|
;; 2. When at a plain-list, move to first item.
|
||||||
|
(org-test-with-temp-text "- Item 1\n - Item 1.1\n - Item 2.2"
|
||||||
|
(goto-line 2)
|
||||||
|
(org-element-down)
|
||||||
|
(should (looking-at " - Item 1.1")))
|
||||||
|
;; 3. Otherwise, move inside the greater element.
|
||||||
|
(org-test-with-temp-text "#+BEGIN_CENTER\nParagraph.\n#+END_CENTER"
|
||||||
|
(org-element-down)
|
||||||
|
(should (looking-at "Paragraph"))))
|
||||||
|
|
||||||
|
|
||||||
(provide 'test-org-element)
|
(provide 'test-org-element)
|
||||||
;;; test-org-element.el ends here
|
;;; test-org-element.el ends here
|
||||||
|
|
Loading…
Reference in a new issue