diff options
| author | Lars Ingebrigtsen | 2021-12-16 07:23:52 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2021-12-16 07:23:52 +0100 |
| commit | 35dbc79cc3233129da90ae2f4916d73e189b63cc (patch) | |
| tree | 30d04f9bf7b81e0e40528a6fd72b41bcbde91fc9 | |
| parent | 3fd9d48f9b9938f0be045e670aac8e5d9527b7d4 (diff) | |
| download | emacs-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.el | 20 |
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." |