From dd4b1a97a1f3ce534ad86b7997c04b2e044cca8f Mon Sep 17 00:00:00 2001 From: Jethro Kuan Date: Thu, 20 Feb 2020 16:18:40 +0800 Subject: [PATCH] (feature): Add advice to delete-file (#142) Closes #119 --- CHANGELOG.md | 3 ++- org-roam.el | 1 + tests/test-org-roam.el | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac0078b..a2d69dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ ### New Features * [#141][gh-141] add variable `org-roam-new-file-directory` for new Org-roam files * [#138][gh-138] add `org-roam-switch-to-buffer` -* [#124][gh-124] Maintain cache consistency on file rename +* [#124][gh-124], [#141][gh-141] Maintain cache consistency on file rename and delete * [#87][gh-87], [#90][gh-90] Support encrypted Org files * [#110][gh-110] Add prefix to `org-roam-insert`, for inserting titles down-cased * [#99][gh-99] Add keybinding so that `` or `mouse-1` in the backlinks buffer visits the source file of the backlink at point @@ -81,6 +81,7 @@ Mostly a documentation/cleanup release. [gh-136]: https://github.com/jethrokuan/org-roam/pull/136 [gh-138]: https://github.com/jethrokuan/org-roam/pull/138 [gh-141]: https://github.com/jethrokuan/org-roam/pull/141 +[gh-142]: https://github.com/jethrokuan/org-roam/pull/142 # Local Variables: # eval: (auto-fill-mode -1) diff --git a/org-roam.el b/org-roam.el index f3a67e4..da315b6 100644 --- a/org-roam.el +++ b/org-roam.el @@ -664,6 +664,7 @@ This needs to be quick/infrequent, because this is run at (org-roam--update-cache))))) (advice-add 'rename-file :after 'org-roam--rename-file-links) +(advice-add 'delete-file :before 'org-roam--clear-file-from-cache) (provide 'org-roam) diff --git a/tests/test-org-roam.el b/tests/test-org-roam.el index c9c0c37..0d80b2c 100644 --- a/tests/test-org-roam.el +++ b/tests/test-org-roam.el @@ -211,3 +211,19 @@ (expect (with-temp-buffer (insert-file-contents (abs-path "f3.org")) (buffer-string)) :to-match (regexp-quote "[[file:meaningful-title.org][meaningful-title]]")))) + +(describe "delete file updates cache" + (before-each + (org-roam--test-init) + (org-roam--clear-cache) + (org-roam--test-build-cache)) + (it "delete f1" + (delete-file (abs-path "f1.org")) + (expect (->> org-roam-forward-links-cache + (gethash (abs-path "f1.org"))) :to-be nil) + (expect (->> org-roam-backward-links-cache + (gethash (abs-path "nested/f1.org")) + (gethash (abs-path "f1.org"))) :to-be nil) + (expect (->> org-roam-backward-links-cache + (gethash (abs-path "nested/f1.org")) + (gethash (abs-path "nested/f2.org"))) :not :to-be nil)))