Function: org-element--cache-setup-change-functions

org-element--cache-setup-change-functions is a byte-compiled function defined in org-element.el.gz.

Signature

(org-element--cache-setup-change-functions)

Documentation

Setup before-change-functions and after-change-functions.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
(defun org-element--cache-setup-change-functions ()
  "Setup `before-change-functions' and `after-change-functions'."
  (when (and (derived-mode-p 'org-mode) org-element-use-cache)
    ;; Clear copied local cache to avoid extra memory usage.
    ;; We only use cache stored in the base buffer.
    (when (buffer-base-buffer)
      (setq-local org-element--cache nil)
      (setq-local org-element--headline-cache nil))
    ;; Register current buffer in `org-fold-core--indirect-buffers' to
    ;; be used within `org-fold-core-cycle-over-indirect-buffers'.
    ;; FIXME: We should eventually factor out indirect buffer tracking
    ;; from org-fold-core.
    (org-fold-core-decouple-indirect-buffer-folds)
    (add-hook 'before-change-functions
	      #'org-element--cache-before-change nil t)
    ;; Run `org-element--cache-after-change' early to handle cases
    ;; when other `after-change-functions' require element cache.
    (add-hook 'after-change-functions
	      #'org-element--cache-after-change -1 t)))