Add prefix to help.el uni-confusable* vars

* lisp/help.el (help-uni-confusables, help-uni-confusables-regexp):
Rename from uni-confusable and uni-confusables-regexp, respectively.
(help-uni-confusable-suggestions): Use ngettext.  Use new variable
name.
* lisp/emacs-lisp/lisp-mode.el (lisp--match-confusable-symbol-character):
Use new variable name.
This commit is contained in:
Noam Postavsky 2019-12-13 06:36:02 -05:00
parent dd3f2130cf
commit 966abdba09
2 changed files with 17 additions and 10 deletions

View file

@ -284,7 +284,7 @@ This will generate compile-time constants from BINDINGS."
;; Match a confusable character within a Lisp symbol.
(catch 'matched
(while t
(if (re-search-forward uni-confusables-regexp limit t)
(if (re-search-forward help-uni-confusables-regexp limit t)
;; Skip confusables which are backslash escaped, or inside
;; strings or comments.
(save-match-data

View file

@ -1511,7 +1511,7 @@ the same names as used in the original source code, when possible."
;; Just some quote-like characters for now. TODO: generate this stuff
;; from official Unicode data.
(defconst uni-confusables
(defconst help-uni-confusables
'((#x2018 . "'") ;; LEFT SINGLE QUOTATION MARK
(#x2019 . "'") ;; RIGHT SINGLE QUOTATION MARK
(#x201B . "'") ;; SINGLE HIGH-REVERSED-9 QUOTATION MARK
@ -1521,25 +1521,32 @@ the same names as used in the original source code, when possible."
(#x301E . "\"") ;; DOUBLE PRIME QUOTATION MARK
(#xFF02 . "'") ;; FULLWIDTH QUOTATION MARK
(#xFF07 . "'") ;; FULLWIDTH APOSTROPHE
))
)
"An alist of confusable characters to give hints about.
Each alist element is of the form (CHAR . REPLACEMENT), where
CHAR is the potentially confusable character, and REPLACEMENT is
the suggested string to use instead. See
`help-uni-confusable-suggestions'.")
(defconst uni-confusables-regexp
(concat "[" (mapcar #'car uni-confusables) "]"))
(defconst help-uni-confusables-regexp
(concat "[" (mapcar #'car help-uni-confusables) "]")
"Regexp matching any character listed in `help-uni-confusables'.")
(defun help-uni-confusable-suggestions (string)
"Return a message describing confusables in STRING."
(let ((i 0)
(confusables nil))
(while (setq i (string-match uni-confusables-regexp string i))
(let ((replacement (alist-get (aref string i) uni-confusables)))
(while (setq i (string-match help-uni-confusables-regexp string i))
(let ((replacement (alist-get (aref string i) help-uni-confusables)))
(push (aref string i) confusables)
(setq string (replace-match replacement t t string))
(setq i (+ i (length replacement)))))
(when confusables
(format-message
(if (> (length confusables) 1)
"Found confusable characters: %s; perhaps you meant: `%s'?"
"Found confusable character: %s, perhaps you meant: `%s'?")
(ngettext
"Found confusable character: %s, perhaps you meant: `%s'?"
"Found confusable characters: %s; perhaps you meant: `%s'?"
(length confusables))
(mapconcat (lambda (c) (format-message "`%c'" c))
confusables ", ")
string))))