Function: org-element-cache-reset
org-element-cache-reset is an autoloaded, interactive and
byte-compiled function defined in org-element.el.gz.
Signature
(org-element-cache-reset &optional ALL NO-PERSISTENCE)
Documentation
Reset cache in current buffer.
When optional argument ALL is non-nil, reset cache in all Org buffers. When optional argument NO-PERSISTENCE is non-nil, do not try to update the cache persistence in the buffer.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
;;;###autoload
(defun org-element-cache-reset (&optional all no-persistence)
"Reset cache in current buffer.
When optional argument ALL is non-nil, reset cache in all Org
buffers.
When optional argument NO-PERSISTENCE is non-nil, do not try to update
the cache persistence in the buffer."
(interactive "P")
(dolist (buffer (if all (buffer-list) (list (current-buffer))))
(org-with-base-buffer buffer
(when (and org-element-use-cache (derived-mode-p 'org-mode))
;; Only persist cache in file buffers.
(when (and (buffer-file-name) (not no-persistence))
(when (not org-element-cache-persistent)
(org-persist-unregister
'org-element--headline-cache
(current-buffer)
:remove-related t)
(org-persist-unregister
'org-element--cache
(current-buffer)
:remove-related t))
(when (and org-element-cache-persistent
(buffer-file-name (current-buffer)))
(org-persist-register
`((elisp org-element--cache) (version ,org-element-cache-version))
(current-buffer))
(org-persist-register
'org-element--headline-cache
(current-buffer)
:inherit `((elisp org-element--cache) (version ,org-element-cache-version)))))
(setq-local org-element--cache-change-tic (buffer-chars-modified-tick))
(setq-local org-element--cache-last-buffer-size (buffer-size))
(setq-local org-element--cache-gapless nil)
(setq-local org-element--cache
(avl-tree-create #'org-element--cache-compare))
(setq-local org-element--headline-cache
(avl-tree-create #'org-element--cache-compare))
(setq-local org-element--cache-hash-left (make-vector org-element--cache-hash-size nil))
(setq-local org-element--cache-hash-right (make-vector org-element--cache-hash-size nil))
(setq-local org-element--cache-size 0)
(setq-local org-element--headline-cache-size 0)
(setq-local org-element--cache-sync-keys-value 0)
(setq-local org-element--cache-change-warning nil)
(setq-local org-element--cache-sync-requests nil)
(setq-local org-element--cache-sync-timer nil)
(org-element--cache-setup-change-functions)
;; Install in the existing indirect buffers.
(dolist (buf (seq-filter
(lambda (buf)
(eq (current-buffer)
(buffer-base-buffer buf)))
(buffer-list)))
(with-current-buffer buf
(org-element--cache-setup-change-functions)))
;; Make sure that `org-element--cache-after-change' and
;; `org-element--cache-before-change' are working inside properly created
;; indirect buffers. Note that `clone-indirect-buffer-hook'
;; will not work inside indirect buffers not created by
;; calling `clone-indirect-buffer'. We consider that the code
;; not using `clone-indirect-buffer' to be written with
;; awareness about possible consequences.
(add-hook 'clone-indirect-buffer-hook
#'org-element--cache-setup-change-functions)))))