Preserve list visibility when inserting a new item

* lisp/org.el (org-insert-heading): Do not reveal gratuitously too much
  context before inserting an item.
* testing/lisp/test-org.el (test-org/insert-heading): Add test.

Reported-by: Steinar Bang <sb@dod.no>
<http://permalink.gmane.org/gmane.emacs.orgmode/107665>
This commit is contained in:
Nicolas Goaziou 2016-06-11 13:32:26 +02:00
parent c07175bfaa
commit 819cdb3a09
2 changed files with 12 additions and 1 deletions

View File

@ -7753,7 +7753,6 @@ command.
When optional argument TOP-LEVEL is non-nil, insert a level 1
heading, unconditionally."
(interactive "P")
(if (org-called-interactively-p 'any) (org-reveal))
(let ((itemp (and (not top-level) (org-in-item-p)))
(may-split (org-get-alist-option org-M-RET-may-split-line 'headline))
(respect-content (or org-insert-heading-respect-content

View File

@ -1100,6 +1100,18 @@
(goto-char (point-max))
(let ((org-insert-heading-respect-content nil)) (org-insert-heading))
(buffer-string))))
;; Preserve list visibility when inserting an item.
(should
(equal
'(outline outline)
(org-test-with-temp-text "- A\n - B\n- C\n - D"
(let ((org-cycle-include-plain-lists t))
(org-cycle)
(forward-line 2)
(org-cycle)
(let ((org-insert-heading-respect-content nil)) (org-insert-heading))
(list (get-char-property (line-beginning-position 0) 'invisible)
(get-char-property (line-end-position 2) 'invisible))))))
;; When called with two universal arguments, insert a new headline
;; at the end of the grandparent subtree.
(should