GNU bug report logs - #65347
29.1; Underscore in query replace prevents case-matching

Previous Next

Package: emacs;

Reported by: Spencer Baugh <sbaugh <at> janestreet.com>

Date: Wed, 16 Aug 2023 21:28:02 UTC

Severity: normal

Found in version 29.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Spencer Baugh <sbaugh <at> janestreet.com>
Cc: 65347 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: bug#65347: 29.1; Underscore in query replace prevents case-matching
Date: Fri, 18 Aug 2023 22:06:32 +0300
> From: Spencer Baugh <sbaugh <at> janestreet.com>
> Cc: 65347 <at> debbugs.gnu.org,  monnier <at> 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?

> 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.

> 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"?




This bug report was last modified 1 year and 277 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.