emacs-diffs
[Top][All Lists]
Advanced

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

master 966abdb: Add prefix to help.el uni-confusable* vars


From: Noam Postavsky
Subject: master 966abdb: Add prefix to help.el uni-confusable* vars
Date: Fri, 13 Dec 2019 06:41:44 -0500 (EST)

branch: master
commit 966abdba09214813a86979f22bfb08475a73f10c
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    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.
---
 lisp/emacs-lisp/lisp-mode.el |  2 +-
 lisp/help.el                 | 25 ++++++++++++++++---------
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 56f8ef6..1da2b79 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -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
diff --git a/lisp/help.el b/lisp/help.el
index 8bb942a..857064c 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -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))))



reply via email to

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