forked from mirrors/org-mode
org-back-to-heading-or-point-min: Rely less on cache
* lisp/org.el (org-before-first-heading-p): Do not try to parse the whole section when there is no cached element at point.
This commit is contained in:
parent
8a0b03fb3b
commit
2f8e688516
17
lisp/org.el
17
lisp/org.el
|
@ -19797,14 +19797,15 @@ instead of back to heading."
|
|||
(defun org-before-first-heading-p ()
|
||||
"Before first heading?
|
||||
Respect narrowing."
|
||||
(if (org-element--cache-active-p)
|
||||
(let ((cached-headline (org-element-lineage (org-element-at-point) '(headline) t)))
|
||||
(or (not cached-headline)
|
||||
(< (org-element-property :begin cached-headline) (point-min))))
|
||||
(org-with-limited-levels
|
||||
(save-excursion
|
||||
(end-of-line)
|
||||
(null (re-search-backward org-outline-regexp-bol nil t))))))
|
||||
(let ((cached (org-element-at-point nil 'cached)))
|
||||
(if cached
|
||||
(let ((cached-headline (org-element-lineage cached '(headline) t)))
|
||||
(or (not cached-headline)
|
||||
(< (org-element-property :begin cached-headline) (point-min))))
|
||||
(org-with-limited-levels
|
||||
(save-excursion
|
||||
(end-of-line)
|
||||
(null (re-search-backward org-outline-regexp-bol nil t)))))))
|
||||
|
||||
(defun org-at-heading-p (&optional invisible-not-ok)
|
||||
"Return t if point is on a (possibly invisible) heading line.
|
||||
|
|
Loading…
Reference in a new issue