GNU bug report logs -
#52558
Option for easier typing of regexps
Previous Next
Reported by: ndame <laszlomail <at> protonmail.com>
Date: Thu, 16 Dec 2021 17:42:01 UTC
Severity: wishlist
Tags: moreinfo
Fixed in version 29.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
Message #48 received at 52558 <at> debbugs.gnu.org (full text, mbox):
>> Such option already exists, and it allows using custom regexp syntax
>> both for isearch and query-replace:
>
> Interesting, though its help mentions only isearch, so if I start
> M-x query-replace-regexp directly, it doesn't seem affected.
If you want to use M-x query-replace directly,
then simpler would be add replace-regexp-function
that you can use with:
(setq replace-regexp-function
(lambda (s &optional _lax)
(let ((chars '("|" "(" ")"))
(placeholder (format "@placeholder%s@"
(int-to-string
(buffer-modified-tick)))))
(dolist (char chars)
(setq s (replace-regexp-in-string
placeholder char
(replace-regexp-in-string
char (concat "\\\\" char)
(replace-regexp-in-string
(concat "\\\\" char) placeholder
s)))))
s)))
diff --git a/lisp/replace.el b/lisp/replace.el
index 0e81b15a09..84c2d523d7 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2621,6 +2621,8 @@ replace-re-search-function
It is called with three arguments, as if it were
`re-search-forward'.")
+(defvar replace-regexp-function nil)
+
(defun replace-search (search-string limit regexp-flag delimited-flag
case-fold &optional backward)
"Search for the next occurrence of SEARCH-STRING to replace."
@@ -2633,7 +2635,8 @@ replace-search
;; outside of this function because then another I-search
;; used after `recursive-edit' might override them.
(let* ((isearch-regexp regexp-flag)
- (isearch-regexp-function (or delimited-flag
+ (isearch-regexp-function (or replace-regexp-function
+ delimited-flag
(and replace-char-fold
(not regexp-flag)
#'char-fold-to-regexp)))
--
This bug report was last modified 3 years and 118 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.