From 7120b6334da5ce241e2738d0cb7fd387df2604a6 Mon Sep 17 00:00:00 2001 From: Ahmed Shariff Date: Sat, 3 Jul 2021 02:17:33 -0500 Subject: [PATCH] Refactor of org-ql-view--complete-buffers-files Handles the different values `org-ql-view-buffers-files` can hold. Use completing-read only if `org-ql-view-buffers-files` is nil or the contracted form of `org-ql-view-buffers-files` is a string. --- org-ql-view.el | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/org-ql-view.el b/org-ql-view.el index 436f3e2..1403584 100644 --- a/org-ql-view.el +++ b/org-ql-view.el @@ -1051,21 +1051,23 @@ current buffer. Otherwise BUFFERS-FILES is returned unchanged." (_ buffers-files)))) (defun org-ql-view--complete-buffers-files () - "Return value for `org-ql-view-buffers-files' using completion." - (cl-labels ((initial-input - () (when org-ql-view-buffers-files - (cons (car (org-ql-view--contract-buffers-files - org-ql-view-buffers-files)) - 0)))) - (if (and org-ql-view-buffers-files - (bufferp org-ql-view-buffers-files)) - ;; Buffers can't be input by name, so if the default value is a buffer, just use it. - ;; TODO: Find a way to fix this. - org-ql-view-buffers-files - (org-ql-view--expand-buffers-files - (completing-read "Buffers/Files: " - (list 'buffer 'org-agenda-files 'org-directory 'all) - nil nil (initial-input)))))) + "Return value for `org-ql-view-buffers-files' using completion. +When `org-ql-view-buffers-files' cannot be contracted to a string +representation `org-ql-view-buffers-files' is returned." + (if (and org-ql-view-buffers-files + (bufferp org-ql-view-buffers-files)) + ;; Buffers can't be input by name, so if the default value is a buffer, just use it. + ;; TODO: Find a way to fix this. + org-ql-view-buffers-files + (let ((initial-input (when org-ql-view-buffers-files + (org-ql-view--contract-buffers-files + org-ql-view-buffers-files)))) + (if (or (not initial-input) (stringp initial-input)) + (org-ql-view--expand-buffers-files + (completing-read "Buffers/Files: " + (list 'buffer 'org-agenda-files 'org-directory 'all) + nil nil initial-input)) + org-ql-view-buffers-files)))) (defun org-ql-view--expand-buffers-files (buffers-files) "Return BUFFERS-FILES expanded to a list of files or buffers.