branch: elpa/evil-numbers
commit 7bc4c7dd4cbc9bc1e1fa2f79337bf31fa66e65d6
Author: Campbell Barton <[email protected]>
Commit: Campbell Barton <[email protected]>

    Cleanup: extract helper for building script alists
    
    Reduce code duplication by factoring out the common pattern
    used to build superscript and subscript alists.
---
 evil-numbers.el | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/evil-numbers.el b/evil-numbers.el
index 29cadc2c5f9..0ffdcd308d3 100644
--- a/evil-numbers.el
+++ b/evil-numbers.el
@@ -119,30 +119,28 @@ This doesn't match VIM's behavior."
 (defconst evil-numbers--chars-subscript "₀₁₂₃₄₅₆₇₈₉"
   "String containing subscript digit characters 0-9.")
 
-(defconst evil-numbers--superscript-alist
+(defun evil-numbers--build-script-alist (minus-char plus-char digit-chars)
+  "Build an alist mapping ASCII characters to script equivalents.
+MINUS-CHAR is the script minus sign.
+PLUS-CHAR is the script plus sign.
+DIGIT-CHARS is a 10-character string of script digits 0-9."
   (cons
-   (cons ?- ?⁻)
+   (cons ?- minus-char)
    (cons
-    (cons ?+ ?⁺)
+    (cons ?+ plus-char)
     (mapcar
      (lambda (i)
        (cons
         (string-to-char (number-to-string i))
-        (aref evil-numbers--chars-superscript i)))
-     (number-sequence 0 9))))
+        (aref digit-chars i)))
+     (number-sequence 0 9)))))
+
+(defconst evil-numbers--superscript-alist
+  (evil-numbers--build-script-alist ?⁻ ?⁺ evil-numbers--chars-superscript)
   "Alist mapping regular characters to superscript equivalents.")
 
 (defconst evil-numbers--subscript-alist
-  (cons
-   (cons ?- ?₋)
-   (cons
-    (cons ?+ ?₊)
-    (mapcar
-     (lambda (i)
-       (cons
-        (string-to-char (number-to-string i))
-        (aref evil-numbers--chars-subscript i)))
-     (number-sequence 0 9))))
+  (evil-numbers--build-script-alist ?₋ ?₊ evil-numbers--chars-subscript)
   "Alist mapping regular characters to subscript equivalents.")
 
 

Reply via email to