From dfb84496804fbecd351807f0eaacc7c5cf64208e Mon Sep 17 00:00:00 2001 From: N V <44036031+progfolio@users.noreply.github.com> Date: Wed, 1 Apr 2020 01:16:09 -0400 Subject: [PATCH] Refactor org-roam--setup-buffer (#388) Change function name org-roam--setup-buffer org-roam--set-up-buffer. Warn user and default to 'right when org-roam-buffer-position is an invalid position. Make better use of pcase to avoid repeating code. --- org-roam.el | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/org-roam.el b/org-roam.el index 05f6e76..20cc775 100644 --- a/org-roam.el +++ b/org-roam.el @@ -694,18 +694,26 @@ Valid states are 'visible, 'exists and 'none." ((< (window-height) h) (enlarge-window (- h (window-height)))))))) -(defun org-roam--setup-buffer () - "Setup the `org-roam' buffer at the `org-roam-buffer-position'." - (let ((window (get-buffer-window))) +(defun org-roam--set-up-buffer () + "Set up the `org-roam' buffer at the `org-roam-buffer-position'." + (let ((window (get-buffer-window)) + (position + (if (member org-roam-buffer-position '(right left top bottom)) + org-roam-buffer-position + (let ((text-quoting-style 'grave)) + (lwarn '(org-roam) :error + "Invalid org-roam-buffer-position: %s. Defaulting to \\='right" + org-roam-buffer-position)) + 'right))) (-> (get-buffer-create org-roam-buffer) (display-buffer-in-side-window - `((side . ,org-roam-buffer-position))) + `((side . ,position))) (select-window)) - (pcase org-roam-buffer-position - ('right (org-roam--set-width (round (* (frame-width) org-roam-buffer-width)))) - ('left (org-roam--set-width (round (* (frame-width) org-roam-buffer-width)))) - ('top (org-roam--set-height (round (* (frame-height) org-roam-buffer-height)))) - ('bottom (org-roam--set-height (round (* (frame-height) org-roam-buffer-height))))) + (pcase position + ((or 'right 'left) + (org-roam--set-width (round (* (frame-width) org-roam-buffer-width)))) + ((or 'top 'bottom) + (org-roam--set-height (round (* (frame-height) org-roam-buffer-height))))) (select-window window))) (defun org-roam () @@ -714,8 +722,8 @@ Valid states are 'visible, 'exists and 'none." (setq org-roam-last-window (get-buffer-window)) (pcase (org-roam--current-visibility) ('visible (delete-window (get-buffer-window org-roam-buffer))) - ('exists (org-roam--setup-buffer)) - ('none (org-roam--setup-buffer)))) + ('exists (org-roam--set-up-buffer)) + ('none (org-roam--set-up-buffer)))) ;;; The global minor org-roam-mode (defvar org-roam-mode-map