org-fold: Fix folding blank lines after newly inserted heading

* lisp/org-fold.el (org-fold--reveal-outline-maybe): Reveal blank
lines after newly inserted heading after a folded heading.
This commit is contained in:
Ihor Radchenko 2022-04-27 19:28:39 +08:00
parent 98a771cc3b
commit e142bd8a9a
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 16 additions and 3 deletions

View File

@ -928,7 +928,19 @@ This function is intended to be used as :fragile property of
(backward-char)
(beginning-of-line)
;; Make sure that headline is not partially hidden
(unless (org-fold-folded-p nil 'headline) (org-fold-region (max (point-min) (1- (point))) (line-end-position) nil 'headline))
(unless (org-fold-folded-p nil 'headline)
(org-fold-region (max (point-min) (1- (point)))
(let ((endl (line-end-position)))
(save-excursion
(goto-char endl)
(skip-chars-forward "\n\t\r ")
;; Unfold blank lines.
(if (or (and (looking-at-p "\\*")
(> (point) (1+ endl)))
(eq (point) (point-max)))
(point)
endl)))
nil 'headline))
;; Never hide level 1 headlines
(save-excursion
(goto-char (line-end-position))
@ -936,8 +948,9 @@ This function is intended to be used as :fragile property of
(org-fold-region (match-beginning 0) (line-end-position) nil 'headline)))
;; Check the validity of headline
(unless (let ((case-fold-search t))
(looking-at (rx-to-string `(or (regex ,(org-item-re))
(regex ,org-outline-regexp-bol))))) ; the match-data will be used later
(looking-at (rx-to-string
`(or (regex ,(org-item-re))
(regex ,org-outline-regexp-bol)))))
t))))
(defun org-fold--reveal-drawer-or-block-maybe (region spec)