mirror of
https://github.com/org-roam/org-roam
synced 2025-08-01 12:17:21 -05:00
(feature): add org-roam-switch-to-buffer (#138)
Implement a buffer-switching mechanism for org-roam files. Closes #126
This commit is contained in:
20
org-roam.el
20
org-roam.el
@ -637,6 +637,26 @@ This needs to be quick/infrequent, because this is run at
|
||||
|
||||
(advice-add 'rename-file :after 'org-roam--rename-file-links)
|
||||
|
||||
(defun org-roam-switch-to-buffer ()
|
||||
"Switch to an existing org-roam buffer using completing-read."
|
||||
(interactive)
|
||||
(let* ((all-buffers (buffer-list))
|
||||
(roam-buffers
|
||||
(--filter (and (with-current-buffer it (derived-mode-p 'org-mode))
|
||||
(buffer-file-name it)
|
||||
(org-roam--org-roam-file-p (buffer-file-name it)))
|
||||
all-buffers))
|
||||
(names-and-buffers (mapcar (lambda (buffer)
|
||||
(cons (or (org-roam--get-title-from-cache
|
||||
(buffer-file-name buffer))
|
||||
(buffer-name buffer))
|
||||
buffer))
|
||||
roam-buffers)))
|
||||
(unless roam-buffers
|
||||
(error "No roam buffers."))
|
||||
(when-let ((name (completing-read "Choose a buffer: " names-and-buffers)))
|
||||
(switch-to-buffer (cdr (assoc name names-and-buffers))))))
|
||||
|
||||
|
||||
(provide 'org-roam)
|
||||
|
||||
|
Reference in New Issue
Block a user