From f10fbad38631a8f797d5f5ee876ce17793e59092 Mon Sep 17 00:00:00 2001 From: "Samuel W. Flint" Date: Fri, 15 Jan 2021 23:43:00 -0600 Subject: [PATCH] (feat): allow `org-roam-buffer-position` to be a function (#1385) Co-authored-by: Jethro Kuan --- org-roam-buffer.el | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/org-roam-buffer.el b/org-roam-buffer.el index 30ea995..148a7f7 100644 --- a/org-roam-buffer.el +++ b/org-roam-buffer.el @@ -64,11 +64,13 @@ Valid values are * left, * right, * top, - * bottom." + * bottom, + * a function returning one of the above." :type '(choice (const left) (const right) (const top) - (const bottom)) + (const bottom) + function) :group 'org-roam) (defcustom org-roam-buffer-width 0.33 @@ -293,14 +295,9 @@ Valid states are 'visible, 'exists and 'none." (defun org-roam-buffer--get-create () "Set up the `org-roam' buffer at `org-roam-buffer-position'." - (let ((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))) + (let ((position (if (functionp org-roam-buffer-position) + (funcall org-roam-buffer-position) + org-roam-buffer-position))) (save-selected-window (-> (get-buffer-create org-roam-buffer) (display-buffer-in-side-window