From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Adding refactoring capabilities to Emacs Date: Wed, 30 Aug 2023 22:59:55 +0300 Message-ID: References: <83fs4f36wi.fsf@gnu.org> <61621120-8f6d-5884-e7c8-33581b8e0ca4@gutov.dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34194"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= , Yuri Khan , Eli Zaretskii , emacs-devel , "Philip K." To: Stefan Kangas Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Aug 30 22:01:20 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 1qbRNP-0008f4-9c for ged-emacs-devel@m.gmane-mx.org; Wed, 30 Aug 2023 22:01:19 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qbRMH-0000V7-RY; Wed, 30 Aug 2023 16:00:09 -0400 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 1qbRMF-0000Fe-GE for emacs-devel@gnu.org; Wed, 30 Aug 2023 16:00:07 -0400 Original-Received: from wout5-smtp.messagingengine.com ([64.147.123.21]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qbRMC-0002Is-DS; Wed, 30 Aug 2023 16:00:07 -0400 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 4D9D93200949; Wed, 30 Aug 2023 16:00:01 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 30 Aug 2023 16:00:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1693425600; x=1693512000; bh=Ywke+WaUBN/F4eFNqvxTX8I5TkMJOh620Dv oeIkAR20=; b=nWQn8g4e1svjn97l2yJiy10yai1GgxuOKgV6xkJGGcIFeN9MyD1 Ql6T3XP+apafR4exeBvZJH5yqvz/yOfOmHAagyO7Bq+iws0Zis0U8JhLubdizQJv TVPQ1QRy4rdv5MryIMkT3B8+gqTAMZ6wwFTGWN9Lsc2KJg7Oc8Izwy4nXxLPSPvd ayMZTFWN9Rf88cfEYQn5hlYOPrhGNVG3mQ1HNYx1TDIobmc7a2uhSy+/MnRTVAeb Mbd79qrfp2LuLgXLGc90V7o8PL5JdFe5daae1AHkwURr0HH1e3w4MOLbcyKyVs4k EYWp1k9xZSurlACZPqxi/jmdt/zp1HLHzrQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1693425600; x=1693512000; bh=Ywke+WaUBN/F4eFNqvxTX8I5TkMJOh620Dv oeIkAR20=; b=EdfMX97HLlfJgoqe1HvMMY2c+5g9VdqioAfH/aHTuHn6wfIARa8 yj78AW+LcMcn1h/KdI4zDhtxZ5B7IlWZOH/Vhm5bORfqKuHDbff/yOPLSNSx/WxZ aCTtdmUtsUrccftvQ74LGY9ahIjPyGq8+wi7UHm2HNML/kVYVkcs9YiIY3PoXFLb I8siGNe1ieWGAI1BiptLsfkvtEQFUvalvf8VxYgKKwNjiKpj4nyrL2bCqDTXycsN t/67e0IJJJlfCFVnWaOAlH9Cyf5mYR78egvcYDwWHIjjhKnhkjMDk2q0hGrDwHlT ftNSQVpfXh6K751e7zQpajrndhudAobqO/Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudefkedgudegjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomhepffhm ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg htthgvrhhnpeeigfetveehveevffehledtueekieeikeeufeegudfgfeeghfdulefgfeev ledvveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe gumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 30 Aug 2023 15:59:58 -0400 (EDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=64.147.123.21; envelope-from=dmitry@gutov.dev; helo=wout5-smtp.messagingengine.com X-Spam_score_int: -39 X-Spam_score: -4.0 X-Spam_bar: ---- X-Spam_report: (-4.0 / 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, NICE_REPLY_A=-1.242, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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:309555 Archived-At: On 30/08/2023 21:46, Stefan Kangas wrote: > Dmitry Gutov writes: > >> Similar to what we ended up doing with checkin-patch in VC -- powerful, >> but no very obvious to a non-pro user in how it can be operated. It is >> surely a good addition to Eglot, but the refactoring interface I was >> thinking of would have been more graphical (very vaguely in the style of >> Xref), looking a little closer to the VS Code screenshot I posted. > Do we need to choose between them, or could we support both? > > IOW, could we have a nice clickable display that also comes with the > fast commands and well-thought-out key bindings? Naturally, we could have a customization point that supports several displays (like xref-show-xrefs-function), but in this case as well any new display would have to reimplement almost all functionality (I guess that's unavoidable), and the format of the input data (CHANGES) need to be usable for such different displays. I can roughly understand how to produce a diff from a list ((FILE START-POS END-POS NEW-TEXT) ...), but it seems more difficult to do the reverse. Though also possible, I suppose.