From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spencer Baugh Newsgroups: gmane.emacs.bugs Subject: bug#65347: 29.1; Underscore in query replace prevents case-matching Date: Fri, 18 Aug 2023 15:14:46 -0400 Message-ID: References: <838raa6syr.fsf@gnu.org> <83o7j451iu.fsf@gnu.org> <83wmxs2p52.fsf@gnu.org> <83sf8g2mrr.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39176"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 65347@debbugs.gnu.org, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Aug 18 21:15:13 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1qX4wC-0009wa-78 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 18 Aug 2023 21:15:12 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qX4w3-0003a3-Q1; Fri, 18 Aug 2023 15:15:03 -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 1qX4w1-0003ZE-Qp for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 15:15:01 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qX4w1-0007Lf-Iq for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 15:15:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qX4w2-0004j2-3n for bug-gnu-emacs@gnu.org; Fri, 18 Aug 2023 15:15:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Aug 2023 19:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65347 X-GNU-PR-Package: emacs Original-Received: via spool by 65347-submit@debbugs.gnu.org id=B65347.169238609518133 (code B ref 65347); Fri, 18 Aug 2023 19:15:02 +0000 Original-Received: (at 65347) by debbugs.gnu.org; 18 Aug 2023 19:14:55 +0000 Original-Received: from localhost ([127.0.0.1]:48826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qX4vu-0004iO-VG for submit@debbugs.gnu.org; Fri, 18 Aug 2023 15:14:55 -0400 Original-Received: from mxout5.mail.janestreet.com ([64.215.233.18]:45597) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qX4vs-0004iB-D6 for 65347@debbugs.gnu.org; Fri, 18 Aug 2023 15:14:53 -0400 In-Reply-To: <83sf8g2mrr.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Aug 2023 22:06:32 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:267784 Archived-At: Eli Zaretskii writes: >> From: Spencer Baugh >> Cc: 65347@debbugs.gnu.org, monnier@iro.umontreal.ca >> Date: Fri, 18 Aug 2023 14:31:46 -0400 >> >> > Here, you look at the issue from a very narrow perspective: of words >> > separated by '-' or '_', because that just happens to be the case that >> > you bumped into. But that is just one very particular use case; words >> > can be separated by a lot more characters. I would actually begin >> > considering the simpler case of "Foo do action". >> >> But no, this use case very specifically is about replacing symbols >> (sexps) while matching case. > > What are "symbols" in this context? Strings made up of symbol constituents as defined by the current major-mode's syntax table. The normal definition of symbols. >> I don't much care about the word boundary or superword-mode, because I'm >> not dealing with words - I'm very deliberately dealing with symbols. > > Capitalization issues with program code are conceptually different > from those with human-readable text. You are basically talking about > refactoring, not about text replacement. So the use cases that are of > interest to you are not well supported by query-replace, because it > doesn't target them. It could well mean that you will need a custom > replace-match function. Insisting on replace-match to support these > cases is not necessarily wise, from where I stand. Hm, that's fair. Although I would bet that the majority of usage of query-replace is with program code, since the majority of Emacs usage is with program code. So features which make query-replace work better with code are still useful. Another feature that could support this would be to allow defining multiple query/replacement pairs, and applying them together across the file or across multiple files, querying as we go. Then "foo" could be replaced with "bar" and "Foo" with "Bar". That kind of simultaneous replacement is something I've definitely wanted before. >> What about the other thing I proposed? That's what I'm more interested >> in, because this is a problem of replacing symbols. And it's much more >> elegant. Repeated here: >> >> >>Alternatively, much more interestingly, the case-matching could *always* >> >>detect case patterns both for symbols and for words. And if there's no >> >>case pattern for words, but there is a case pattern for symbols, apply >> >>that case pattern to symbols in the replacement. We could even turn >> >>that on by default. Does that sound like a good change? I can make >> >>that change if it sounds desirable. > > I don't understand the proposal. Again, what are "symbols" in this > context, and how are they different from "words"? The normal definition of symbols in Emacs, as defined by the syntax table.