GNU bug report logs -
#31796
26.1; dired-do-find-regexp-and-replace fails to find multiline regexps
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On 06.12.2020 23:00, Juri Linkov wrote:
>>> dired-do-find-regexp uses 'ignores' to filter out ignored files.
>>> You could add another filter to filter out files without matches
>>> using 'grep -PzL'.
>> Right. This is sorta a backup plan. Although, when the number of files to
>> search can be counted on one hand, there's nothing too bad in doing the
>> search in Emacs.
> Another backup plan is to use ripgrep. Its multiline handling with -U
> also allows to search words ignoring any whitespace, even newlines.
> This is like isearch-lax-whitespace using search-whitespace-regexp
> when it contains a newline, e.g. "[ \t\r\n]+".
Right. It has a problem of its own, though: it still outputs a file name
per line, even when a match is spread across several lines (unlike
pcregrep). So we're left guessing where a given multiline match ends.
Also, 'sort' doesn't seem to be able to treat both : and \0 as
separators at the same time.
Here's a rough patch, for illustration. It's kind of working, but I'm
not loving it.
[ripgrep-multiline.diff (text/x-patch, attachment)]
This bug report was last modified 4 years and 246 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.