1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-24 07:20:37 +00:00

Pop to an existing Eshell buffer by default

* lisp/progmodes/project.el (project-shell): Improve docstring to
include information about an implementation detail.

* list/progmodes/project.el (project-eshell): Modelled after
'project-shell', change default behavior such that we don't create too
many eshell buffers by default.  Use universal argument to create
subsequent buffers.
This commit is contained in:
Theodor Thornhill 2020-06-20 11:54:22 +02:00 committed by Dmitry Gutov
parent c59475ae1e
commit c1056b0387

View File

@ -716,8 +716,9 @@ PREDICATE, HIST, and DEFAULT have the same meaning as in
;;;###autoload
(defun project-shell ()
"Start an inferior shell in the current project's root directory.
With \\[universal-argument] prefix, create subsequent shell buffers
with uniquified names."
With \\[universal-argument] prefix, create subsequent shell
buffers with uniquified names. If several Shell buffers exists,
this command jumps to the first created such buffer."
(interactive)
(let* ((default-directory (project-root (project-current t)))
(default-project-shell-name
@ -732,10 +733,21 @@ with uniquified names."
;;;###autoload
(defun project-eshell ()
"Start Eshell in the current project's root directory."
"Start Eshell in the current project's root directory.
With \\[universal-argument] prefix, create subsequent shell
buffers with uniquified names. If several Eshell buffers exists,
this command jumps to the first created such buffer."
(interactive)
(let ((default-directory (project-root (project-current t))))
(eshell t)))
(let* ((default-directory (project-root (project-current t)))
(eshell-buffer-name
(concat "*" (file-name-nondirectory
(directory-file-name
(file-name-directory default-directory)))
"-eshell*"))
(eshell-buffer (get-buffer eshell-buffer-name)))
(if (and eshell-buffer (not current-prefix-arg))
(pop-to-buffer eshell-buffer)
(eshell t))))
(declare-function fileloop-continue "fileloop" ())