Helm: Allow optional helm-lister in helm-defswitcher
parent
f5d0a63598
commit
8aaa29084a
|
@ -20,7 +20,7 @@
|
|||
(switch-to-buffer buffer))
|
||||
(switch-to-buffer (funcall ,new-fn candidate))))))))
|
||||
|
||||
(defmacro helm-deflister (name predicate new-fn &optional extra-sources)
|
||||
(defmacro helm-deflister (name predicate new-fn &rest extra-sources)
|
||||
(let ((buffer-source-name (format "%s buffers" name)))
|
||||
(add-to-list 'helm-source-names-using-follow buffer-source-name)
|
||||
`(defun ,(intern (format "helm-%s-buffers" (downcase name))) ()
|
||||
|
@ -39,7 +39,7 @@
|
|||
,new-fn)))))
|
||||
:buffer ,(format "*helm-%s-buffers*" name)))))
|
||||
|
||||
(defmacro helm-defswitcher (name predicate new-fn &optional extra-sources)
|
||||
(defmacro helm-defswitcher (name predicate new-fn &optional helm-lister &rest extra-sources)
|
||||
"Create an interactive buffer switcher for NAME.
|
||||
When current buffer is not of NAME, switch to last NAME session if any.
|
||||
Otherwise create a new one and switch to it.
|
||||
|
@ -51,7 +51,8 @@ If current buffer is of NAME, show the buffer list."
|
|||
(interactive "P")
|
||||
(if (or menu (funcall ,predicate (current-buffer)))
|
||||
;; TODO: Funcall the return value of helm-deflister.
|
||||
(funcall ',(intern (format "helm-%s-buffers" (downcase name))))
|
||||
(funcall ',(or helm-lister
|
||||
(intern (format "helm-%s-buffers" (downcase name)))))
|
||||
(let ((last (cl-loop for buffer in (buffer-list)
|
||||
when (funcall ,predicate buffer)
|
||||
return buffer)))
|
||||
|
|
Loading…
Reference in New Issue