Subject: bug#64394: [PATCH] Fix `async-shell-command-display-buffer' display

From: Eliza Velasquez <[email-masked]>
Date: Sat, 01 Jul 2023 01:42:53 -0700

On Sat, Jul 01 2023 at 11:12 +03, Eli Zaretskii <[email-masked]> wrote:

> But that's exactly what this variable is about, AFAIU:
>
>   Whether to display the command buffer immediately.
>   If t, display the buffer immediately; if nil, wait until there
>   is output.
>
> Note the last part.
>
> So why do you think this behavior is a problem?

On a philosophical level: It's surprising to me in that previous example
that if `async-shell-command-display-buffer' is t, the buffer is /not/
displayed (according to `display-buffer-alist'), but if it's nil, it
/is/ displayed, eventually (ignoring `display-buffer-alist').

On a practical level: The user may want to differentiate buffer display
behavior based on the name of the shell command buffer or by some other
predicate, including disabling showing that buffer, regardless of
whether `async-shell-command-display-buffer' is set to t or nil.  I have
recently authored a package to make this easier [1] and ran into this
problem.  The example configuration in the README might shed some more
light on the expected behavior.

[1] https://github.com/elizagamedev/shell-command-x.el

-- 
Eliza