bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#31796: 27.1; dired-do-find-regexp-and-replace fails to find multilin


From: Dmitry Gutov
Subject: bug#31796: 27.1; dired-do-find-regexp-and-replace fails to find multiline regexps
Date: Sun, 29 Nov 2020 04:30:14 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 25.11.2020 22:30, Eli Zaretskii wrote:
I'd like us to fix the current binding of Q so that it supports
everything the previous command did.

Just how much of "everything" are we talking about?

For instance, a number of character classes in Emacs regexps are dependent on the syntax table. Like [:word:], for instance.

Even [:space:] is dependent on syntax, while it matches a fixed set of characters in Grep. So when searching across different file types we can't even "expand" such constructs into concrete characters to search for.

One approach I've considered is replacing such unsupported constructs with '.', or removing them entirely for constructs like \< and \_<. And then post-filter the resulting matches in Emacs.

For example, xref-references-in-directory uses a special case of this approach. In the general case though, I worry users would sometimes create regexps that result in an exponentially slow or just match-all regexp being passed to Grep, which would never finish, for no obvious reason.

Someone should try it, but it's a fair amount of work to handle all supported constructs, and to catch all (most?) the regexps which we can't support in this mode.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]