emacs/eshell: minor refactor
This commit is contained in:
parent
867eaebd9d
commit
a1b4616236
1 changed files with 11 additions and 11 deletions
|
@ -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 ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue