GNU bug report logs -
#68570
29.1; recompile might not re-use project-compile's buffer
Previous Next
Full log
Message #65 received at 68570 <at> debbugs.gnu.org (full text, mbox):
On 27/01/2024 19:53, Juri Linkov wrote:
>>> It's very useful to always create a unique buffer for every compilation:
>>> this allows keeping error messages from previous compilations.
>>
>> Hmm, but I suppose it can be a personal preference whether a "recompile"
>> should create a new buffer or not.
>>
>> Because it's also reasonable to expect that 'M-x compile' creates a new
>> buffer (e.g. project-prefixed and unique), but 'recompile', or
>> 'revert-buffer' - keep that buffer around and reuse it. When one wants to
>> keep the old contents, they could 'M-x compile' (or 'M-x project-compile')
>> instead.
>>
>> This might be my preference anyway, because OT1H old compilations are often
>> (but not always) handy to have around, OT2H I don't like to have too many
>> buffers, and the above distinction between 'compile' and 'recompile' would
>> be a tool to make that choice.
>
> A new option could be added indeed. But currently 'g' after 'compile'
> uses 'compilation-buffer-name-function' that can be configured
> to generate a new buffer. So it's expected that 'g' after
> 'project-compile' should do the same and use
> 'project-compilation-buffer-name-function', especially
> when it's configured to generate a new buffer.
Again, I'm not sure if it's expected: even if I do like the idea of
unique per-project compilation buffers, seeing 'g' reuse the existing
buffer feels pretty natural.
> IOW, I think these two 'compile' and 'project-compile'
> should be in sync in regard to what 'recompile' does.
When I'm saying is that when 'recompile' reuses the current buffer it
already follows the result of project-compilation-buffer-name-function
(when it was invoked from project-compile, of course).
>>> I propose even to add such an option to the choice list in
>>> project-compilation-buffer-name-function, e.g.:
>>> (defcustom project-compilation-buffer-name-function nil
>>> :type '(choice (const :tag "Default" nil)
>>> (const :tag "Prefixed with project name"
>>> project-prefixed-buffer-name)
>>> (const :tag "Prefixed and unique with project name"
>>> project-prefixed-unique-buffer-name)
>>> (function :tag "Custom function")))
>>
>> Sounds good.
>
> There is also a proposal to add the same option
> to 'compilation-buffer-name-function' in bug#68697.
Sounds good to me. We could also ask the reporter there what they think
'g' should do in such buffers (create a new one or reuse current).
>>> The previous patch would be needed as well since currently
>>> there is no way to allow unique project compilation buffers.
>>
>> The one in 0a07603ae8d?
>
> Actually I meant https://debbugs.gnu.org/68570#23
We could make a new option in compile.el which would determine whether
to do this in general: when non-nil, 'compilation-start' would save the
current dynamic value of 'compilation-buffer-name-function', and
'recompile' would call it again.
Otherwise the distinction remains that when 'recompile' is invoked
inside a compilation buffer, the same buffer is used; and when it's
invoked from some other buffer, a new compilation buffer can be created.
This bug report was last modified 99 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.