mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-20 18:17:20 +00:00
Add anychar' as alias to
anything' in rx (bug#37659)
* lisp/emacs-lisp/rx.el (rx--translate-symbol, rx--builtin-symbols, rx): * test/lisp/emacs-lisp/rx-tests.el (rx-atoms): * doc/lispref/searching.texi (Rx Constructs): * etc/NEWS: Add `anychar', an alias for `anything'. Since `anychar' is more descriptive (and slightly shorter), treat it as the preferred name.
This commit is contained in:
parent
2d13a3f68d
commit
e5a446b0a7
@ -1220,7 +1220,8 @@ Corresponding string regexp: @samp{[^@dots{}]}, @samp{\S@var{code}},
|
||||
Match any character except a newline.@*
|
||||
Corresponding string regexp: @samp{.} (dot)
|
||||
|
||||
@item @code{anything}
|
||||
@item @code{anychar}, @code{anything}
|
||||
@cindex @code{anychar} in rx
|
||||
@cindex @code{anything} in rx
|
||||
Match any character.@*
|
||||
Corresponding string regexp: @samp{.\|\n} (for example)
|
||||
|
4
etc/NEWS
4
etc/NEWS
@ -1854,6 +1854,10 @@ at run time, instead of a constant string.
|
||||
*** New rx extension mechanism: 'rx-define', 'rx-let', 'rx-let-eval'.
|
||||
These macros add new forms to the rx notation.
|
||||
|
||||
+++
|
||||
*** 'anychar' is now an alias for 'anything'
|
||||
Both match any single character; 'anychar' is more descriptive.
|
||||
|
||||
** Frames
|
||||
|
||||
+++
|
||||
|
@ -126,7 +126,6 @@ Each entry is:
|
||||
(get name 'rx-definition)))
|
||||
|
||||
;; TODO: Additions to consider:
|
||||
;; - A better name for `anything', like `any-char' or `anychar'.
|
||||
;; - A name for (or), maybe `unmatchable'.
|
||||
;; - A construct like `or' but without the match order guarantee,
|
||||
;; maybe `unordered-or'. Useful for composition or generation of
|
||||
@ -138,7 +137,7 @@ Each entry is:
|
||||
;; Use `list' instead of a quoted list to wrap the strings here,
|
||||
;; since the return value may be mutated.
|
||||
((or 'nonl 'not-newline 'any) (cons (list ".") t))
|
||||
('anything (rx--translate-form '(or nonl "\n")))
|
||||
((or 'anychar 'anything) (rx--translate-form '(or nonl "\n")))
|
||||
((or 'bol 'line-start) (cons (list "^") 'lseq))
|
||||
((or 'eol 'line-end) (cons (list "$") 'rseq))
|
||||
((or 'bos 'string-start 'bot 'buffer-start) (cons (list "\\`") t))
|
||||
@ -913,7 +912,7 @@ can expand to any number of values."
|
||||
"List of built-in rx function-like symbols.")
|
||||
|
||||
(defconst rx--builtin-symbols
|
||||
(append '(nonl not-newline any anything
|
||||
(append '(nonl not-newline any anychar anything
|
||||
bol eol line-start line-end
|
||||
bos eos string-start string-end
|
||||
bow eow word-start word-end
|
||||
@ -1016,7 +1015,7 @@ CHAR Match a literal character.
|
||||
can be (any ...), (syntax ...), (category ...),
|
||||
or a character class.
|
||||
not-newline Match any character except a newline. Alias: nonl.
|
||||
anything Match any character.
|
||||
anychar Match any character. Alias: anything.
|
||||
|
||||
CHARCLASS Match a character from a character class. One of:
|
||||
alpha, alphabetic, letter Alphabetic characters (defined by Unicode).
|
||||
|
@ -184,8 +184,8 @@
|
||||
"ab")))
|
||||
|
||||
(ert-deftest rx-atoms ()
|
||||
(should (equal (rx anything)
|
||||
".\\|\n"))
|
||||
(should (equal (rx anychar anything)
|
||||
"\\(?:.\\|\n\\)\\(?:.\\|\n\\)"))
|
||||
(should (equal (rx line-start not-newline nonl any line-end)
|
||||
"^...$"))
|
||||
(should (equal (rx bol string-start string-end buffer-start buffer-end
|
||||
|
Loading…
Reference in New Issue
Block a user