summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2025-01-16 13:30:43 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2025-01-16 13:30:43 +0100
commitcf0553114f51d8970837423f1b2da4f0980cb1e1 (patch)
tree70761473a44d38240433571da3ed20375b0d5d3c
parentac3903c9bd986ec763279ffb0c3e5ee16e53747d (diff)
Better emoji normalization (Fix #143)
-rw-r--r--cape-char.el15
1 files changed, 10 insertions, 5 deletions
diff --git a/cape-char.el b/cape-char.el
index fc123e4..c301701 100644
--- a/cape-char.el
+++ b/cape-char.el
@@ -44,12 +44,17 @@ are not included. Hash values are either char or strings."
(apply #'quail-use-package method (nthcdr 5 im))
(quail-build-decode-map (list (quail-map)) "" dm 0)
(pcase-dolist (`(,name . ,val) (cdr dm))
+ (when (equal method "emoji")
+ (setq name (replace-regexp-in-string
+ ": " "-"
+ (replace-regexp-in-string
+ "[’“”!()]" ""
+ (replace-regexp-in-string
+ "[_ &.]+" "-" name))))
+ (when (string-match-p "\\`[[:alnum:]-]*\\'" name)
+ (setq name (format ":%s:" name))))
(when (memq (aref name 0) prefix)
- (puthash
- (if (equal method "emoji")
- (string-replace "_" "-" name)
- name)
- (if (vectorp val) (aref val 0) val) hash)))
+ (puthash name (if (vectorp val) (aref val 0) val) hash)))
(quail-deactivate)
hash))))