From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jonas Bernoulli Newsgroups: gmane.emacs.devel Subject: Re: Adding transient to Emacs core Date: Tue, 27 Apr 2021 14:05:48 +0200 Message-ID: <875z08lyoz.fsf@bernoul.li> References: <87czuqi86o.fsf@bernoul.li> <87pmyhdvla.fsf@bernoul.li> <20210426.230318.88708181443886760.enometh@meer.net> <878s54m7ae.fsf@bernoul.li> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9682"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Madhu , emacs-devel@gnu.org To: Gregory Heytings Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Apr 27 14:09:09 2021 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 1lbMWZ-00028b-GU for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Apr 2021 14:09:07 +0200 Original-Received: from localhost ([::1]:50818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lbMWY-0005yg-Bh for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Apr 2021 08:09:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33168) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lbMTU-00051g-34 for emacs-devel@gnu.org; Tue, 27 Apr 2021 08:05:56 -0400 Original-Received: from mail.hostpark.net ([212.243.197.30]:49052) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lbMTR-0004li-Qt for emacs-devel@gnu.org; Tue, 27 Apr 2021 08:05:55 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.hostpark.net (Postfix) with ESMTP id AC3BB165C4; Tue, 27 Apr 2021 14:05:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bernoul.li; h= content-type:content-type:mime-version:message-id:date:date :references:in-reply-to:subject:subject:from:from:received :received; s=sel2011a; t=1619525148; bh=PwNPSm6tMQPdWpj+p0KQRlR9 CaMnFnqYbzwfzfVHVTk=; b=3w0TJZCSOPjYHnzaYZzl8rS6ZjpAe24ABIsIns2K IDCeYxmz2fx1WDvqRaOFlwET6uBYYYRWTgdtkqApN92z0UsE8djF0t0oOwrAbv8y ZnndlRFd700Ul7MlWuxQppXu/YUO/ho3ZnBPeWsG7Op86JL4XGR5bh4Bg5+qYMog Qbc= X-Virus-Scanned: by Hostpark/NetZone Mailprotection at hostpark.net Original-Received: from mail.hostpark.net ([127.0.0.1]) by localhost (mail0.hostpark.net [127.0.0.1]) (amavisd-new, port 10224) with ESMTP id b7GdGWjBoTuY; Tue, 27 Apr 2021 14:05:48 +0200 (CEST) Original-Received: from customer (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.hostpark.net (Postfix) with ESMTPSA id 79C3E165CB; Tue, 27 Apr 2021 14:05:48 +0200 (CEST) In-Reply-To: Received-SPF: none client-ip=212.243.197.30; envelope-from=jonas@bernoul.li; helo=mail.hostpark.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:268526 Archived-At: Gregory Heytings writes: >> >> I have addressed this by let-binding that variable to t around the call >> to display-buffer. There's just no way around that because transient's >> buffer just has to be displayed somewhere other than the selected >> window. >> > > I agree with Philip here: why is there "just no way around that"? At > least when the frame is too small, it could make sense to display the > transient buffer "above" the selected window. Many Emacs commands operate on the "current thing". Different commands treat different things as the current thing. It could be the selected frame or window, the current buffer, line, character, value of a certain text property at point, ... `kill-this-buffer' for example operates on the current buffer. Any Emacs command can be added as the suffix of a transient prefix command, for example: (transient-define-prefix my-buffer-commands () "Do stuff to buffers." [:description (lambda () (format "Act on current buffer (%s)" (current-buffer))) ("k" "kill the current buffer" kill-this-buffer)]) (global-set-key [f1] 'my-buffer-commands) If the selected window were repurposed to display transient's buffer, then that would change what buffer is the current buffer and it would become impossible to act on the buffer that was previously the current buffer or on "the thing under the cursor" in that buffer. Re-purposing the selected window would massively reduce the usefulness of a huge number of commands or even make them completely useless.