summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-12-16 07:23:52 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-12-16 07:23:52 +0100
commit35dbc79cc3233129da90ae2f4916d73e189b63cc (patch)
tree30d04f9bf7b81e0e40528a6fd72b41bcbde91fc9 /lisp
parent3fd9d48f9b9938f0be045e670aac8e5d9527b7d4 (diff)
downloademacs-35dbc79cc3233129da90ae2f4916d73e189b63cc.tar.gz
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.
Diffstat (limited to 'lisp')
-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 @@
(require 'cl-lib)
(require 'cl-extra)
(require 'transient)
+(require 'multisession)
(defgroup emoji nil
"Inserting Emojis."
@@ -59,7 +60,7 @@
(defvar emoji--derived nil)
(defvar emoji--names (make-hash-table :test #'equal))
(defvar emoji--done-derived nil)
-(defvar emoji--recent (list "😀" "😖"))
+(define-multisession-variable emoji--recent (list "😀" "😖"))
(defvar emoji--insert-buffer)
;;;###autoload
@@ -83,7 +84,7 @@ of a visual interface."
(unless (fboundp 'emoji--command-Emoji)
(emoji--define-transient))
(funcall (emoji--define-transient
- (cons "Recent" emoji--recent) t)))
+ (cons "Recent" (multisession-value emoji--recent)) t)))
;;;###autoload
(defun emoji-search ()
@@ -529,15 +530,18 @@ character) under point is."
(lambda ()
(interactive)
(funcall (emoji--define-transient
- (cons "Recent" emoji--recent) t end-function))))
+ (cons "Recent" (multisession-value emoji--recent))
+ t end-function))))
(defun emoji--add-recent (glyph)
"Add GLYPH to the set of recently used emojis."
- (setq emoji--recent (delete glyph emoji--recent))
- (push glyph emoji--recent)
- ;; Shorten the list.
- (when-let ((tail (nthcdr 30 emoji--recent)))
- (setcdr tail nil)))
+ (let ((recent (multisession-value emoji--recent)))
+ (setq recent (delete glyph recent))
+ (push glyph recent)
+ ;; Shorten the list.
+ (when-let ((tail (nthcdr 30 recent)))
+ (setcdr tail nil))
+ (setf (multisession-value emoji--recent) recent)))
(defun emoji--columnize (list columns)
"Split LIST into COLUMN columns."