emacs/eshell: minor refactor

This commit is contained in:
Henrik Lissner 2018-07-11 00:02:48 +02:00
parent 867eaebd9d
commit a1b4616236
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -14,7 +14,7 @@
;; ;;
(defun +eshell--add-buffer (buf) (defun +eshell--add-buffer (buf)
(ring-remove+insert+extend +eshell-buffers buf)) (ring-remove+insert+extend +eshell-buffers buf 'grow))
(defun +eshell--remove-buffer (buf) (defun +eshell--remove-buffer (buf)
(when-let* ((idx (ring-member +eshell-buffers buf))) (when-let* ((idx (ring-member +eshell-buffers buf)))
@ -37,7 +37,7 @@
(defun +eshell--unused-buffer (&optional new-p) (defun +eshell--unused-buffer (&optional new-p)
(or (unless new-p (or (unless new-p
(cl-loop for buf in (ring-elements +eshell-buffers) (cl-loop for buf in (+eshell-buffers)
if (and (buffer-live-p buf) if (and (buffer-live-p buf)
(not (get-buffer-window buf t))) (not (get-buffer-window buf t)))
return buf)) return buf))
@ -46,8 +46,8 @@
;;;###autoload ;;;###autoload
(defun +eshell-last-buffer (&optional noerror) (defun +eshell-last-buffer (&optional noerror)
"Return the last opened eshell buffer." "Return the last opened eshell buffer."
(let ((buffer (cl-find-if #'buffer-live-p (ring-elements +eshell-buffers)))) (let ((buffer (cl-find-if #'buffer-live-p (+eshell-buffers))))
(cond ((buffer-live-p buffer) buffer) (cond (buffer)
(noerror nil) (noerror nil)
((user-error "No live eshell buffers remaining"))))) ((user-error "No live eshell buffers remaining")))))
@ -63,7 +63,7 @@
(or buffer (or buffer
(if (eq major-mode 'eshell-mode) (if (eq major-mode 'eshell-mode)
(current-buffer) (current-buffer)
(cl-find-if #'buffer-live-p (ring-elements +eshell-buffers)))))) (cl-find-if #'buffer-live-p (+eshell-buffers))))))
(unless buffer (unless buffer
(user-error "No living eshell buffers available")) (user-error "No living eshell buffers available"))
(unless (buffer-live-p buffer) (unless (buffer-live-p buffer)
@ -218,7 +218,7 @@ delete."
"Interactively switch to another eshell buffer." "Interactively switch to another eshell buffer."
(interactive (interactive
(let ((buffers (doom-buffers-in-mode (let ((buffers (doom-buffers-in-mode
'eshell-mode (delq (current-buffer) (ring-elements +eshell-buffers))))) 'eshell-mode (delq (current-buffer) (+eshell-buffers)))))
(if (not buffers) (if (not buffers)
(user-error "No eshell buffers are available") (user-error "No eshell buffers are available")
(list (list
@ -250,13 +250,13 @@ delete."
;;;###autoload ;;;###autoload
(defun +eshell|init () (defun +eshell|init ()
"Initialize and track this eshell buffer in `+eshell-buffers'." "Initialize and track this eshell buffer in `+eshell-buffers'."
(let ((buf (current-buffer))) (let ((current-buffer (current-buffer)))
(dolist (buf (ring-elements +eshell-buffers)) (dolist (buf (+eshell-buffers))
(unless (buffer-live-p buf) (unless (buffer-live-p buf)
(+eshell--remove-buffer buf))) (+eshell--remove-buffer buf)))
(+eshell--setup-window (get-buffer-window buf)) (+eshell--setup-window (get-buffer-window current-buffer))
(+eshell--add-buffer buf) (+eshell--add-buffer current-buffer)
(setq +eshell--last-buffer buf))) (setq +eshell--last-buffer current-buffer)))
;;;###autoload ;;;###autoload
(defun +eshell|cleanup () (defun +eshell|cleanup ()