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))
            (org-persist-unregister 'org-element--cache (current-buffer)))
          (when (and org-element-cache-persistent
                     (buffer-file-name (current-buffer)))
            (org-persist-register 'org-element--cache (current-buffer))
            (org-persist-register 'org-element--headline-cache
                                  (current-buffer)
                                  :inherit 'org-element--cache)))
        (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)
        ;; 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)))))