Function: org-roam-db-update-file

org-roam-db-update-file is a byte-compiled function defined in org-roam-db.el.

Signature

(org-roam-db-update-file &optional FILE-PATH DEPRECATED-ARG)

Documentation

Update Org-roam cache for FILE-PATH.

Assumes FILE-PATH exists. See also org-roam-db-clear-file.

If NO-REQUIRE, don't require optional libraries. Set NO-REQUIRE when the libraries are already required at some toplevel, e.g. in org-roam-db-sync.

Source Code

;; Defined in ~/.emacs.d/elpa/org-roam-20260224.1637/org-roam-db.el
;;;; Synchronization
(defun org-roam-db-update-file (&optional file-path _deprecated-arg)
  "Update Org-roam cache for FILE-PATH.

Assumes FILE-PATH exists. See also `org-roam-db-clear-file'.

If NO-REQUIRE, don't require optional libraries. Set NO-REQUIRE
when the libraries are already required at some toplevel, e.g.
in `org-roam-db-sync'."
  (setq file-path (or file-path (buffer-file-name (buffer-base-buffer))))
  (let ((content-hash (org-roam-db--file-hash file-path))
        (db-hash (caar (org-roam-db-query [:select hash :from files
                                           :where (= file $s1)] file-path)))
        info)
    (unless (string= content-hash db-hash)
      (require 'org-ref nil t)
      (org-roam-with-file file-path nil
        (emacsql-with-transaction (org-roam-db)
          (org-with-wide-buffer
           (org-set-regexps-and-options 'tags-only)
           ;; Org doesn't use this anymore, so we probably should stop too.
           ;; (org-refresh-category-properties)
           (org-roam-db-clear-file)
           (org-roam-db-insert-file content-hash)
           (org-roam-db-insert-file-node)
           (setq org-outline-path-cache nil)
           (org-roam-db-map-nodes
            (list #'org-roam-db-insert-node-data
                  #'org-roam-db-insert-aliases
                  #'org-roam-db-insert-tags
                  #'org-roam-db-insert-refs))
           (setq org-outline-path-cache nil)
           (setq info (org-element-parse-buffer))
           (org-roam-db-map-links
            (list #'org-roam-db-insert-link))
           (when (require 'oc nil t)
             (org-roam-db-map-citations
              info
              (list #'org-roam-db-insert-citation)))))))))