On 24 December 2016 at 18:14, martin rudalics <rudalics@gmx.at> 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.)

--