Subject: bug#18133: Suppressing asynchronous command output

From: Reuben Thomas <[email-masked]>
Date: Mon, 26 Dec 2016 23:43:45 +0000

On 24 December 2016 at 18:14, martin rudalics <[email-masked]> wrote:

> >>     It would be nice if the user only had to change one thing to enable
> hiding
> >>     the async output buffer until there is output. If we only added the
> >>     function to display-buffer--action-function-custom-type, the user
> still has
> >>     to manually add the right buffer name pattern and the action to
> >>     display-buffer-alist.
> >
> > Yes, I meant to add a value that would handle "*Async Shell Output*"
> > buffer like described above.
>
> The type specification of ‘display-buffer-alist’ goes as:
>
>   :type `(alist :key-type
>                 (choice :tag "Condition"
>                         regexp
>                         (function :tag "Matcher function"))
>                 :value-type ,display-buffer--action-custom-type)
>
> This associates regexps/matcher functions with actions.  How, in such a
> specification, can I splice in a buffer name associated with a key
> _without_ assigning that pair to the default of ‘display-buffer-alist’?
> Maybe I'm missing some detail of the customization interface.

​The detail I think you're missing is that when you add an ":options"
entry, that is a selectable option, off by default.​

>> And how should ‘display-buffer’ know whether "there's some material" in
> >> that buffer?
>

​The answer to that is, display-buffer does not know.

> > That's up to Reuben, I thought he had this figured out already.
>
> Whatever he figures out, it will affect the decision whether to display
> the buffer initially.

​Initially, the buffer is not displayed. Every time output is added to it,
it is displayed, by the filter function. (According to Juri's later
message, this is inefficient.)

-- 
http://rrt.sc3d.org