Subject: Re: bug#18133: Suppressing asynchronous command output

From: martin rudalics <[email-masked]>
Date: Sat, 24 Dec 2016 19:14:56 +0100

>>     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.

 >> And how should ‘display-buffer’ know whether "there's some material" in
 >> that buffer?
 >
 > 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.  You can decide that via a matcher function in
‘display-buffer-alist’ (if the buffer name equals "..." and the buffer
is not empty display it, otherwise not) but then it would be easier to
add a new action function like ‘display-buffer-if-not-empty’.

martin