[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Name of buffers created by project-shell
From: |
Dmitry Gutov |
Subject: |
Re: Name of buffers created by project-shell |
Date: |
Thu, 4 Mar 2021 05:21:59 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Hi Matthias,
On 02.03.2021 23:18, Matthias Meulien wrote:
When I C-x p v (project-vc-dir) from a buffer with project root called,
say, "myproject" , I switch to a buffer called *vc-dir*<myproject>.
When I C-x p s (project-shell) from a buffer with same project root, I
switch to a buffer called *myproject-shell*
Later, I found it not very convenient when switching between buffers by
name using C-x b (switch-to-buffer) to have one buffer with a prefix
build from the project root and one with a suffix. Don't you think we
should homogenize those namings? Since when I M-x shell then C-u M-x
shell, I switch to a *shell*<2> buffer, I'd suggest to rename the buffer
created by project-shell to *shell*<myproject>...
What you're asking for makes sense, but there is a snag because of how
these commands are implemented.
vc-dir doesn't choose the buffer name format itself. It ultimately calls
create-file-buffer (which has an advice made by uniquify) which renames
the buffer based on uniquify-buffer-name-style (if uniquify is loaded in
the current session), of course. The problem with that function is that
it always creates a new buffer. So, before calling it,
vc-dir-prepare-status-buffer does a search for existing buffer and can
find existing one if it matches by major mode and default directory.
Both shell and eshell buffers can change their default-directory, but we
can track which project they belong to with a new variable. See the
attached patch.
There's one problem, though: when called with C-u, the piece of behavior
which reads as "create a new inferior shell buffer even if one already
exists" now creates buffers uniquely named according to uniquify's
rules, which seems to mean
*shell*
emacs-master/*shell*
vc/emacs-master/*shell*
instead of what one might expect, like
emacs-master/*shell*
emacs-master/*shell*<2>
emacs-master/*shell*<3>
Perhaps the solution is not to go through uniquify for this, but then we
project-shell can't really be consistent with project-vc-dir.
uniquify-project-shell.diff
Description: Text Data
- Name of buffers created by project-shell, Matthias Meulien, 2021/03/02
- Re: Name of buffers created by project-shell,
Dmitry Gutov <=
- Re: Name of buffers created by project-shell, Stefan Monnier, 2021/03/03
- Re: Name of buffers created by project-shell, Juri Linkov, 2021/03/04
- Re: Name of buffers created by project-shell, Matthias Meulien, 2021/03/14
- Re: Name of buffers created by project-shell, Dmitry Gutov, 2021/03/14
- Re: Name of buffers created by project-shell, Matthias Meulien, 2021/03/15
- Re: Name of buffers created by project-shell, Dmitry Gutov, 2021/03/21
- Re: Name of buffers created by project-shell, Matthias Meulien, 2021/03/23
- Re: Name of buffers created by project-shell, Juri Linkov, 2021/03/24
- Re: Name of buffers created by project-shell, Dmitry Gutov, 2021/03/24