mirror of
https://github.com/org-roam/org-roam
synced 2025-08-01 12:17:21 -05:00
(fix): close files intelligently after modifying (#1330)
Co-authored-by: Jethro Kuan <jethrokuan95@gmail.com>
This commit is contained in:
27
org-roam.el
27
org-roam.el
@ -1079,12 +1079,8 @@ When STRICT is non-nil, only consider Org-roam’s database.
|
||||
When KEEP-BUFFER-P is non-nil, keep the buffers navigated by Org-roam open."
|
||||
(let ((file (org-roam-id-get-file id strict)))
|
||||
(when file
|
||||
(let ((existing-buf (find-buffer-visiting file))
|
||||
(res (org-id-find-id-in-file id file markerp)))
|
||||
(when (and (not keep-buffer-p)
|
||||
(not existing-buf))
|
||||
(kill-buffer (find-buffer-visiting file)))
|
||||
res))))
|
||||
(org-roam-with-file file keep-buffer-p
|
||||
(org-id-find-id-in-file id file markerp)))))
|
||||
|
||||
(defun org-roam-id-open (id-or-marker &optional strict)
|
||||
"Go to the entry with ID-OR-MARKER.
|
||||
@ -1382,10 +1378,8 @@ To be added to `org-roam-title-change-hook'."
|
||||
:where (= dest $s1)]
|
||||
current-path)))
|
||||
(dolist (file files-affected)
|
||||
(with-current-buffer (or (find-buffer-visiting (car file))
|
||||
(find-file-noselect (car file)))
|
||||
(org-roam--replace-link current-path current-path old-title new-title)
|
||||
(save-buffer)))))
|
||||
(org-roam-with-file (car file) nil
|
||||
(org-roam--replace-link current-path current-path old-title new-title)))))
|
||||
|
||||
(defun org-roam--update-file-name-on-title-change (old-title new-title)
|
||||
"Update the file name on title change.
|
||||
@ -1414,8 +1408,7 @@ When NEW-FILE-OR-DIR is a directory, we use it to compute the new file path."
|
||||
(let ((new-file (if (directory-name-p new-file-or-dir)
|
||||
(expand-file-name (file-name-nondirectory old-file) new-file-or-dir)
|
||||
new-file-or-dir))
|
||||
files-affected
|
||||
new-buffer)
|
||||
files-affected)
|
||||
(setq new-file (expand-file-name new-file))
|
||||
(setq old-file (expand-file-name old-file))
|
||||
(when (and (not (auto-save-file-name-p old-file))
|
||||
@ -1424,8 +1417,6 @@ When NEW-FILE-OR-DIR is a directory, we use it to compute the new file path."
|
||||
(not (backup-file-name-p new-file))
|
||||
(org-roam--org-roam-file-p old-file))
|
||||
(org-roam-db--ensure-built)
|
||||
(setq new-buffer (or (find-buffer-visiting new-file)
|
||||
(find-file-noselect new-file)))
|
||||
(setq files-affected (org-roam-db-query [:select :distinct [source]
|
||||
:from links
|
||||
:where (= dest $s1)]
|
||||
@ -1437,8 +1428,7 @@ When NEW-FILE-OR-DIR is a directory, we use it to compute the new file path."
|
||||
(setq file (if (string-equal (car file) old-file)
|
||||
new-file
|
||||
(car file)))
|
||||
(with-current-buffer (or (find-buffer-visiting file)
|
||||
(find-file-noselect file))
|
||||
(org-roam-with-file file nil
|
||||
(org-roam--replace-link old-file new-file)
|
||||
(save-buffer)
|
||||
(org-roam-db--update-file)))
|
||||
@ -1447,9 +1437,8 @@ When NEW-FILE-OR-DIR is a directory, we use it to compute the new file path."
|
||||
;; will break. Fix all file-relative links:
|
||||
(unless (string= (file-name-directory old-file)
|
||||
(file-name-directory new-file))
|
||||
(with-current-buffer new-buffer
|
||||
(org-roam--fix-relative-links old-file)
|
||||
(save-buffer)))
|
||||
(org-roam-with-file new-file nil
|
||||
(org-roam--fix-relative-links old-file)))
|
||||
(when (org-roam--org-roam-file-p new-file)
|
||||
(org-roam-db--update-file new-file)))))
|
||||
|
||||
|
Reference in New Issue
Block a user