From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Selecting *Compile-log* buffer automatically Date: Sun, 24 Dec 2023 19:28:48 +0200 Organization: LINKOV.NET Message-ID: <86o7efse5r.fsf@mail.linkov.net> References: <86wmtlrqpc.fsf@mail.linkov.net> <86wmt4hl5e.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30434"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) Cc: emacs-devel@gnu.org To: Kiso Katsuyuki Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Dec 24 18:44:32 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rHSWd-0007jA-9M for ged-emacs-devel@m.gmane-mx.org; Sun, 24 Dec 2023 18:44:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rHSW7-0006Uq-FI; Sun, 24 Dec 2023 12:43:59 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rHSW5-0006Ug-Cj for emacs-devel@gnu.org; Sun, 24 Dec 2023 12:43:57 -0500 Original-Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rHSW2-0001tL-UN for emacs-devel@gnu.org; Sun, 24 Dec 2023 12:43:57 -0500 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id 1C8DB1C0003; Sun, 24 Dec 2023 17:43:48 +0000 (UTC) In-Reply-To: (Kiso Katsuyuki's message of "Sun, 24 Dec 2023 06:51:23 -0600") X-GND-Sasl: juri@linkov.net Received-SPF: pass client-ip=2001:4b98:dc4:8::225; envelope-from=juri@linkov.net; helo=relay5-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:314157 Archived-At: >>>>I believe this should be customizable with something like >>>> >>>> (setopt display-buffer-alist >>>> '(("\\*Compile-log\\*" nil (select-window . t)))) >>> >>> Thank you for the advice, but I tried this and it didn't work. >>> *Compile-log* buffer isn't selected. >>> I used emacs 29.1 with no init files loaded. >> >>This feature was discussed in bug#33258 and bug#46034, >>but not yet implemented. It should be easy to implement >>exactly the same way as 'windmove-display-in-direction' >>selects the old or new window in 'post-command-hook'. >>Ok, I will post a patch to bug-gnu-emacs. > > There seems to be another problem with using display-buffer-alist. > byte-compile-file repeats byte-compile, display-warning (this uses > display-buffer) > for each S-expression. Selecting *Compile-log* buffer before finishing > byte-compiling the last > S-expression causes an error. I checked the error using > > (defun select-visible-warning-buffer (_type _message &optional _level > buffer-name) > "Select the visible warning buffer" > (unless buffer-name > (setq buffer-name "*Warnings*")) > (let ((window (get-buffer-window (get-buffer buffer-name)))) > (if window (select-window window)))) > > (advice-add 'display-warning :after #'select-visible-warning-buffer) > > , and byte-compile causes "Error: End of file during parsing". > > display-buffer-alist should affect every display-buffer, so I think > it leads to the same error. Indeed, you can't select arbitrary windows in every display-buffer, because code after every display-buffer expects certain buffers to be selected. This was discussed in bug#33258, and the only possible solution is to select the window when the current command finishes. This is implemented in bug#67993.