aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2021-12-16 07:23:52 +0100
committerLars Ingebrigtsen2021-12-16 07:23:52 +0100
commit35dbc79cc3233129da90ae2f4916d73e189b63cc (patch)
tree30d04f9bf7b81e0e40528a6fd72b41bcbde91fc9
parent3fd9d48f9b9938f0be045e670aac8e5d9527b7d4 (diff)
downloademacs-35dbc79cc3233129da90ae2f4916d73e189b63cc.tar.gz
emacs-35dbc79cc3233129da90ae2f4916d73e189b63cc.zip
Make emoji--recent use multisession variables
* lisp/international/emoji.el (emoji--recent): Make into a multisession variable. (emoji-recent, emoji--recent-transient): Use it. (emoji--add-recent): Update it.
-rw-r--r--lisp/international/emoji.el20
1 files changed, 12 insertions, 8 deletions
diff --git a/lisp/international/emoji.el b/lisp/international/emoji.el
index 5f8c358caab..a4dec973fb8 100644
--- a/lisp/international/emoji.el
+++ b/lisp/international/emoji.el
@@ -30,6 +30,7 @@
30(require 'cl-lib) 30(require 'cl-lib)
31(require 'cl-extra) 31(require 'cl-extra)
32(require 'transient) 32(require 'transient)
33(require 'multisession)
33 34
34(defgroup emoji nil 35(defgroup emoji nil
35 "Inserting Emojis." 36 "Inserting Emojis."
@@ -59,7 +60,7 @@
59(defvar emoji--derived nil) 60(defvar emoji--derived nil)
60(defvar emoji--names (make-hash-table :test #'equal)) 61(defvar emoji--names (make-hash-table :test #'equal))
61(defvar emoji--done-derived nil) 62(defvar emoji--done-derived nil)
62(defvar emoji--recent (list "😀" "😖")) 63(define-multisession-variable emoji--recent (list "😀" "😖"))
63(defvar emoji--insert-buffer) 64(defvar emoji--insert-buffer)
64 65
65;;;###autoload 66;;;###autoload
@@ -83,7 +84,7 @@ of a visual interface."
83 (unless (fboundp 'emoji--command-Emoji) 84 (unless (fboundp 'emoji--command-Emoji)
84 (emoji--define-transient)) 85 (emoji--define-transient))
85 (funcall (emoji--define-transient 86 (funcall (emoji--define-transient
86 (cons "Recent" emoji--recent) t))) 87 (cons "Recent" (multisession-value emoji--recent)) t)))
87 88
88;;;###autoload 89;;;###autoload
89(defun emoji-search () 90(defun emoji-search ()
@@ -529,15 +530,18 @@ character) under point is."
529 (lambda () 530 (lambda ()
530 (interactive) 531 (interactive)
531 (funcall (emoji--define-transient 532 (funcall (emoji--define-transient
532 (cons "Recent" emoji--recent) t end-function)))) 533 (cons "Recent" (multisession-value emoji--recent))
534 t end-function))))
533 535
534(defun emoji--add-recent (glyph) 536(defun emoji--add-recent (glyph)
535 "Add GLYPH to the set of recently used emojis." 537 "Add GLYPH to the set of recently used emojis."
536 (setq emoji--recent (delete glyph emoji--recent)) 538 (let ((recent (multisession-value emoji--recent)))
537 (push glyph emoji--recent) 539 (setq recent (delete glyph recent))
538 ;; Shorten the list. 540 (push glyph recent)
539 (when-let ((tail (nthcdr 30 emoji--recent))) 541 ;; Shorten the list.
540 (setcdr tail nil))) 542 (when-let ((tail (nthcdr 30 recent)))
543 (setcdr tail nil))
544 (setf (multisession-value emoji--recent) recent)))
541 545
542(defun emoji--columnize (list columns) 546(defun emoji--columnize (list columns)
543 "Split LIST into COLUMN columns." 547 "Split LIST into COLUMN columns."