[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/emoji e269cea: Make more columns for final list
From: |
Lars Ingebrigtsen |
Subject: |
scratch/emoji e269cea: Make more columns for final list |
Date: |
Tue, 26 Oct 2021 10:48:51 -0400 (EDT) |
branch: scratch/emoji
commit e269cead54b65f13453ae369db061be1e3781980
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make more columns for final list
---
lisp/play/emoji.el | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/lisp/play/emoji.el b/lisp/play/emoji.el
index efabccc..f4ac36a 100644
--- a/lisp/play/emoji.el
+++ b/lisp/play/emoji.el
@@ -33,7 +33,8 @@
(defun emoji-insert ()
"Choose and insert an emoji glyph."
(interactive)
- (unless emoji--labels
+ ;; Remove debugging.
+ (unless (and nil emoji--labels)
(emoji--parse-labels)
(emoji--define-transient))
(funcall (intern "emoji-command-Emoji")))
@@ -115,8 +116,9 @@
(setq alist (cons "Emoji" emoji--labels)))
(let* ((mname (pop alist))
(name (intern (format "emoji-command-%s" mname)))
+ (has-subs (consp (cadr alist)))
(layout
- (if (consp (cadr alist))
+ (if has-subs
;; Define sub-maps.
(cl-loop for entry in (emoji--compute-prefix alist)
collect (list
@@ -134,17 +136,9 @@
(lambda ()
(interactive)
(insert this-char)))))))
- (half (/ (length layout) 2))
- args)
- (unless (zerop (mod (length layout) 2))
- (setq half (1+ half)))
- (if (nthcdr half layout)
- (setq args (vector mname
- (apply #'vector
- (seq-take layout half))
- (apply #'vector
- (nthcdr half layout))))
- (setq args (vector mname (apply #'vector layout))))
+ (args (apply #'vector mname
+ (emoji--columnize layout
+ (if has-subs 2 8)))))
;; There's probably a better way to do this...
(setf (symbol-function name)
(lambda ()
@@ -162,6 +156,12 @@
suffixes)))
name))
+(defun emoji--columnize (list columns)
+ (cl-loop with length = (ceiling (/ (float (length list)) columns))
+ for i upto length
+ for part on list by (lambda (l) (nthcdr length l))
+ collect (apply #'vector (seq-take part length))))
+
(defun emoji--compute-prefix (alist)
"Compute characters to use for entries in ALIST.
We prefer the earliest unique letter."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- scratch/emoji e269cea: Make more columns for final list,
Lars Ingebrigtsen <=