branch: externals/cape commit cf0553114f51d8970837423f1b2da4f0980cb1e1 Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
Better emoji normalization (Fix #143) --- cape-char.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cape-char.el b/cape-char.el index fc123e4049..c3017015f3 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))))