(fix): close files intelligently after modifying (#1330)

Co-authored-by: Jethro Kuan <jethrokuan95@gmail.com>
This commit is contained in:
Nathanael kinfe
2020-12-15 02:33:55 -08:00
committed by GitHub
parent 8aa793b021
commit f2976fa3be
3 changed files with 33 additions and 34 deletions

View File

@ -1079,12 +1079,8 @@ When STRICT is non-nil, only consider Org-roams 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)))))