From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jon Eskin Newsgroups: gmane.emacs.devel Subject: [Patch] Add project.el command to replace symbol at point throughout project Date: Tue, 11 Jan 2022 02:45:57 -0500 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000089cd2805d549a5c6" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40651"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 11 08:48:06 2022 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 1n7Bsz-000AMz-GV for ged-emacs-devel@m.gmane-mx.org; Tue, 11 Jan 2022 08:48:05 +0100 Original-Received: from localhost ([::1]:56190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n7Bsy-0008MX-CJ for ged-emacs-devel@m.gmane-mx.org; Tue, 11 Jan 2022 02:48:04 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:34164) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n7BrB-0006tl-Kb for emacs-devel@gnu.org; Tue, 11 Jan 2022 02:46:13 -0500 Original-Received: from [2607:f8b0:4864:20::d2d] (port=46641 helo=mail-io1-xd2d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n7Br9-0004c3-ND for emacs-devel@gnu.org; Tue, 11 Jan 2022 02:46:13 -0500 Original-Received: by mail-io1-xd2d.google.com with SMTP id w9so8124596iol.13 for ; Mon, 10 Jan 2022 23:46:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=cDTAO3rTGvTZxkHAEit+tj1pKaMbIAtq1YKZx9nX9NY=; b=jZX19e48b5Y+UBzfv1s+ZPyURKz06EKvwcB3Q3awMXoraN8fyqyD65wb9BE3sihnCV czN3nnURaVZnh+vT2JpKaag/SnunsT1KMdyEhemouJ6aA0DbD0Qp8foKbrTD6Gx8oiG6 b+U+veTCrl7oTIwLI2jdd5k/toxFd0FlKaQpjFlM2//1C2SB3mKeNdJqC91NNa7zD3hg DBhlOgx7ZlzjOQCI9Er6xAgk9uNEi8q+ybr+WAa7Bubwhr8qrXTHIEx5ckhVQUzXsGY6 U1CXv36zutCZZl0i/dY8vYkP6I3XSagyDQcN0wEeNP3T9oFXoQl+gl5El7wBcVGwJiJh wlug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=cDTAO3rTGvTZxkHAEit+tj1pKaMbIAtq1YKZx9nX9NY=; b=c234wP1s3NuFP3UMQ2EHrzW6ZywzHpS0vyCUvC3j9TxPna3pAwZvi8u8z1z400QYdc nyONJn0sCveN7Rfiv1LTs//KiXfUHC9TqbRtufk65pUuuWvlZetXHSQRirIcApu77UcY fuS1yR8NcwC3WT1ujBxhlAhdJpfJXM8BgJRZ9kNcBQOInazlMrGx6r5HV5dCOep1kdrk G/SAp3DhY4XeywxBSXCGzsQeQ61jKAG12lRME6D4kZ1v4goiloGS77iwbmQQn9JiCYze 27Br8VTy8qJMk9NOKENNzq3y8I07H+ndG2kc+GW0Lbvq6tzbdAmQWqR9F58jPsGfg+yR TpAA== X-Gm-Message-State: AOAM5332vtFxqUQptadyuAOpAdxi4ZnxPSPoEUbn5u4d4hUrQdhiyFNh hxeWdKEcPdTU9CvTMHj8LBDQjtgJxHk03ZmQm6JFfA8jtMw= X-Google-Smtp-Source: ABdhPJz+am1LTOSD6DlHj+G7837ybx9ek7z4vz80vdn1mXVUVa6V6Q5H7g70WNTk3lzDnq2DJ73VlKQWrfgKg1Wnp1M= X-Received: by 2002:a05:6602:17d0:: with SMTP id z16mr1553413iox.204.1641887170144; Mon, 10 Jan 2022 23:46:10 -0800 (PST) X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::d2d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::d2d; envelope-from=eskinjp@gmail.com; helo=mail-io1-xd2d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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" Xref: news.gmane.io gmane.emacs.devel:284577 Archived-At: --00000000000089cd2805d549a5c6 Content-Type: multipart/alternative; boundary="00000000000089cd2605d549a5c4" --00000000000089cd2605d549a5c4 Content-Type: text/plain; charset="UTF-8" Attached is a small patch adding command 'project-query-replace-at-point' to project.el. The command is designed to improve the ergonomics of making a project wide text replacement of a symbol at point. Currently, if you want to make a project wide replacement of a symbol using project.el, the best options I've found are: - Mark the symbol you wish to replace - Save symbol to kill ring with 'kill-ring-save' - Enter command 'project-query-replace-regexp' - Paste in the symbol, taking care to quote regex if necessary, and hit return - Enter the replacement string and hit return or - Mark the symbol you wish to replace - Save symbol to kill ring with 'kill-ring-save' - Place cursor on symbol and enter command 'project-find-regexp' - Hit return at the next prompt to accept the default prompt - Enter command 'xref-query-replace-in-results' - Enter the replacement string and hit return 'project-query-replace-at-point' regex-quotes the symbol at point and then calls into the fileloop-initialize-replace function used by the existing project-query-replace-regexp command. Replacing a symbol with 'project-query-replace-at-point' occurs as follows: - Place cursor on symbol and enter command 'project-query-replace-at-point' - Enter the replacement string and hit return Let me know what you guys think. I haven't contributed before so please let me know if I'm doing anything incorrectly. --00000000000089cd2605d549a5c4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Attached is a small patch adding command 'project-quer= y-replace-at-point' to project.el. The command is designed to improve t= he ergonomics of making a project wide text replacement of a symbol at poin= t.

Currently, if you want to make a project wide replacement of a sy= mbol using project.el, the best options I've found are:

- Mark t= he symbol you wish to replace
- Save symbol to kill ring with 'kill-= ring-save'
- Enter command 'project-query-replace-regexp'- Paste in the symbol, taking care to quote regex if necessary, and hit re= turn
- Enter the replacement string and hit return

or

- Ma= rk the symbol you wish to replace
- Save symbol to kill ring with 'k= ill-ring-save'
- Place cursor on symbol and enter command 'proje= ct-find-regexp'
- Hit return at the next prompt to accept the defaul= t prompt
- Enter command 'xref-query-replace-in-results'
- En= ter the replacement string and hit return

'project-query-replace= -at-point' regex-quotes the symbol at point and then calls into the fil= eloop-initialize-replace function used by the existing project-query-replac= e-regexp command.

Replacing a symbol with 'project-query-replace= -at-point' occurs as follows:

- Place cursor on symbol and enter= command 'project-query-replace-at-point'
- Enter the replacemen= t string and hit return

Let me know what you guys think. I haven'= ;t contributed before so please let me know if I'm doing anything incor= rectly.

--00000000000089cd2605d549a5c4-- --00000000000089cd2805d549a5c6 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-function-for-project-wide-replacement-of-symbol-.patch" Content-Disposition: attachment; filename="0001-Add-function-for-project-wide-replacement-of-symbol-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ky9ssnrk0 RnJvbSA5Zjk2MjY0MWM0ZTgxM2U0MWQxODhmNDAwMGFiM2Y4M2NlM2FiYThlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gRXNraW4gPGVza2luanBAZ21haWwuY29tPgpEYXRlOiBN b24sIDEwIEphbiAyMDIyIDE1OjA0OjM1IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIGZ1bmN0 aW9uIGZvciBwcm9qZWN0LXdpZGUgcmVwbGFjZW1lbnQgb2Ygc3ltYm9sIGF0IHBvaW50LgoKKiBs aXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsCihwcm9qZWN0LXF1ZXJ5LXJlcGxhY2UtYXQtcG9pbnQp OiBOZXcgY29tbWFuZC4KKHByb2plY3QtLXF1ZXJ5LXJlcGxhY2UtYXQtcG9pbnQtcmVhZC1hcmdz KTogTmV3IGZ1bmN0aW9uLgoKKiBkb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQooUHJvamVjdCBG aWxlIENvbW1hbmRzKTogRG9jdW1lbnQgJ3Byb2plY3QtcXVlcnktcmVwbGFjZS1hdC1wb2ludCcK LS0tCiBkb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aSB8ICAyICsrCiBsaXNwL3Byb2dtb2Rlcy9w cm9qZWN0LmVsICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCAyNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL21haW50YWluaW5nLnRl eGkgYi9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQppbmRleCA5YTIzZjIzZTBlLi42NWFiNWNk Y2E1IDEwMDY0NAotLS0gYS9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQorKysgYi9kb2MvZW1h Y3MvbWFpbnRhaW5pbmcudGV4aQpAQCAtMTY5MCw2ICsxNjkwLDggQEAgUHJvamVjdCBGaWxlIENv bW1hbmRzCiBAaXRlbSBNLXggcHJvamVjdC1zZWFyY2gKIEludGVyYWN0aXZlbHkgc2VhcmNoIGZv ciByZWdleHAgbWF0Y2hlcyBpbiBhbGwgZmlsZXMgdGhhdCBiZWxvbmcgdG8KIHRoZSBjdXJyZW50 IHByb2plY3QuCitAaXRlbSBNLXggcHJvamVjdC1xdWVyeS1yZXBsYWNlLWF0LXBvaW50CitQZXJm b3JtIHF1ZXJ5LXJlcGxhY2UgZm9yIHRoZSBzeW1ib2wgYXQgcG9pbnQuCiBAaXRlbSBDLXggcCBy CiBQZXJmb3JtIHF1ZXJ5LXJlcGxhY2UgZm9yIGEgcmVnZXhwIGluIGFsbCBmaWxlcyB0aGF0IGJl bG9uZyB0byB0aGUKIGN1cnJlbnQgcHJvamVjdCAoQGNvZGV7cHJvamVjdC1xdWVyeS1yZXBsYWNl LXJlZ2V4cH0pLgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbCBiL2xpc3Av cHJvZ21vZGVzL3Byb2plY3QuZWwKaW5kZXggZWRhMTljNDZhMy4uYWNjNjAxMzA2NiAxMDA2NDQK LS0tIGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9wcm9q ZWN0LmVsCkBAIC04NDksNiArODQ5LDE2IEBAIHByb2plY3QtLXJlYWQtcmVnZXhwCiAgICAgKHJl YWQtcmVnZXhwICJGaW5kIHJlZ2V4cCIgKGFuZCBzeW0gKHJlZ2V4cC1xdW90ZSBzeW0pKQogICAg ICAgICAgICAgICAgICBwcm9qZWN0LXJlZ2V4cC1oaXN0b3J5LXZhcmlhYmxlKSkpCiAKKyhkZWZ1 biBwcm9qZWN0LS1xdWVyeS1yZXBsYWNlLWF0LXBvaW50LXJlYWQtYXJncyAoKQorICAiUHJvbXB0 IGZvciBhIHN0cmluZyBuYW1lIHRvIHJlcGxhY2UgdGhlIHN5bWJvbCBhdCBwb2ludCBpbiB0aGUg cHJvamVjdC4iCisgIChsZXQqICgoc3ltICh0aGluZy1hdC1wb2ludCAnc3ltYm9sIHQpKQorICAg ICAgICAgKHJlZ2V4LXF1b3RlZC1zeW0gKGFuZCBzeW0gKHJlZ2V4cC1xdW90ZSBzeW0pKSkKKyAg ICAgICAgIChyZXBsYWNlIChxdWVyeS1yZXBsYWNlLXJlYWQtdG8KKyAgICAgICAgICAgICAgICAg ICByZWdleC1xdW90ZWQtc3ltCisgICAgICAgICAgICAgICAgICAgIlRocm91Z2hvdXQgcHJvamVj dCByZXBsYWNlIHN5bWJvbDoiCisgICAgICAgICAgICAgICAgICAgbmlsKSkpCisgICAgKGxpc3Qg cmVnZXgtcXVvdGVkLXN5bSByZXBsYWNlKSkpCisKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcHJv amVjdC1maW5kLWZpbGUgKCZvcHRpb25hbCBpbmNsdWRlLWFsbCkKICAgIlZpc2l0IGEgZmlsZSAo d2l0aCBjb21wbGV0aW9uKSBpbiB0aGUgY3VycmVudCBwcm9qZWN0LgpAQCAtMTA2NSw2ICsxMDc1 LDIwIEBAIHByb2plY3Qtc2VhcmNoCiAgICByZWdleHAgKHByb2plY3QtZmlsZXMgKHByb2plY3Qt Y3VycmVudCB0KSkgJ2RlZmF1bHQpCiAgIChmaWxlbG9vcC1jb250aW51ZSkpCiAKKzs7OyMjI2F1 dG9sb2FkCisoZGVmdW4gcHJvamVjdC1xdWVyeS1yZXBsYWNlLWF0LXBvaW50ICh0aGluZy1hdC1w b2ludCByZXBsYWNlbWVudCkKKyAgIlF1ZXJ5LXJlcGxhY2UgVEhJTkctQVQtUE9JTlQgaW4gYWxs IGZpbGVzIG9mIHRoZSBwcm9qZWN0LgorU3RvcHMgd2hlbiBhIG1hdGNoIGlzIGZvdW5kIGFuZCBw cm9tcHRzIGZvciB3aGV0aGVyIHRvIHJlcGxhY2UgaXQuCitJZiB5b3UgZXhpdCB0aGUgYHF1ZXJ5 LXJlcGxhY2UnLCB5b3UgY2FuIGxhdGVyIGNvbnRpbnVlIHRoZQorYHF1ZXJ5LXJlcGxhY2UnIGxv b3AgdXNpbmcgdGhlIGNvbW1hbmQgXFxbZmlsZWxvb3AtY29udGludWVdLiIKKyAgKGludGVyYWN0 aXZlCisgICAocGNhc2UtbGV0ICgoYCgsdGhpbmctYXQtcG9pbnQgLHJlcGxhY2VtZW50KQorICAg ICAgICAgICAgICAgIChwcm9qZWN0LS1xdWVyeS1yZXBsYWNlLWF0LXBvaW50LXJlYWQtYXJncykp KQorICAgICAobGlzdCB0aGluZy1hdC1wb2ludCByZXBsYWNlbWVudCkpKQorICAoZmlsZWxvb3At aW5pdGlhbGl6ZS1yZXBsYWNlCisgICB0aGluZy1hdC1wb2ludCByZXBsYWNlbWVudCAocHJvamVj dC1maWxlcyAocHJvamVjdC1jdXJyZW50IHQpKSAnZGVmYXVsdCkKKyAgKGZpbGVsb29wLWNvbnRp bnVlKSkKKwogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBwcm9qZWN0LXF1ZXJ5LXJlcGxhY2UtcmVn ZXhwIChmcm9tIHRvKQogICAiUXVlcnktcmVwbGFjZSBSRUdFWFAgaW4gYWxsIHRoZSBmaWxlcyBv ZiB0aGUgcHJvamVjdC4KLS0gCjIuMzQuMQoK --00000000000089cd2805d549a5c6--