diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-03-09 19:47:50 +0100 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-03-09 19:47:50 +0100 |
commit | 86131a8b5017cd2cec2167a76a8c6233ee58db2c (patch) | |
tree | 6bba7fdbd11fdce8a2b410125811882bc7262363 | |
parent | 1a42967061142c99b4fa7f3ce9aea75ca6a9c670 (diff) | |
download | org-mode-86131a8b5017cd2cec2167a76a8c6233ee58db2c.tar.gz |
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.
-rw-r--r-- | contrib/lisp/org-element.el | 11 | ||||
-rw-r--r-- | testing/lisp/test-org-element.el | 15 |
2 files changed, 26 insertions, 0 deletions
diff --git a/contrib/lisp/org-element.el b/contrib/lisp/org-element.el index e73c29b..098c312 100644 --- a/contrib/lisp/org-element.el +++ b/contrib/lisp/org-element.el @@ -3859,6 +3859,17 @@ modified." ((org-before-first-heading-p) (error "No surrounding element")) (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) ;;; org-element.el ends here diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 567540a..b321ffa 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -312,6 +312,21 @@ Outside." (org-element-up) (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) ;;; test-org-element.el ends here |