[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ement 91f86323c9 1/2: Tidy
From: |
ELPA Syncer |
Subject: |
[elpa] externals/ement 91f86323c9 1/2: Tidy |
Date: |
Tue, 9 Jan 2024 03:57:56 -0500 (EST) |
branch: externals/ement
commit 91f86323c9d36d534d234d88e68f9599fe6104ed
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Tidy
---
ement-room.el | 77 ++++++++++++++++++++++++++++++-----------------------------
1 file changed, 39 insertions(+), 38 deletions(-)
diff --git a/ement-room.el b/ement-room.el
index 81f2e5b4a2..0c2dc9f64f 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -3352,50 +3352,51 @@ Formats according to `ement-room-message-format-spec',
which see."
(defun ement-room--format-reactions (event room)
"Return formatted reactions to EVENT in ROOM."
;; TODO: Like other events, pop to a buffer showing the raw reaction events
when a key is pressed.
- (if-let ((reactions (map-elt (ement-event-local event) 'reactions)))
- (cl-labels ((format-reaction (ks)
- (pcase-let* ((`(,key . ,senders) ks)
- (key (propertize key 'face
'ement-room-reactions-key))
- (count (propertize (format " (%s)"
- (if (length=
senders 1)
-
(ement--user-displayname-in room (car senders))
- (length
senders)))
- 'face
'ement-room-reactions))
- (string
- (propertize (concat key count)
- 'button '(t)
- 'category 'default-button
- 'action
#'ement-room-reaction-button-action
- 'follow-link t
- 'help-echo (lambda (_window
buffer _pos)
- ;; NOTE: If the
reaction key string is a Unicode character composed
- ;; with, e.g.
"VARIATION SELECTOR-16", `string-to-char' ignores the
- ;; composed
modifier/variation-selector and just returns the first
- ;; character of the
string. This should be fine, since it's just
- ;; for the tooltip.
- (concat
-
(get-char-code-property (string-to-char key) 'name) ": "
- (senders-names
senders (buffer-local-value 'ement-room buffer))))))
- (local-user-p (cl-member (ement-user-id
(ement-session-user ement-session)) senders
- :key #'ement-user-id
:test #'equal)))
- (when local-user-p
- (add-face-text-property 0 (length string) '(:box
(:style pressed-button) :inverse-video t)
- nil string))
- (ement--remove-face-property string 'button)
- string))
- (senders-names (senders room)
- (cl-loop for sender in senders
- collect (ement--user-displayname-in room sender)
- into names
- finally return (string-join names ", "))))
+ (cl-labels
+ ((format-reaction (ks)
+ (pcase-let* ((`(,key . ,senders) ks)
+ (key (propertize key 'face 'ement-room-reactions-key))
+ (count (propertize (format " (%s)"
+ (if (length= senders 1)
+
(ement--user-displayname-in room (car senders))
+ (length senders)))
+ 'face 'ement-room-reactions))
+ (string
+ (propertize (concat key count)
+ 'button '(t)
+ 'category 'default-button
+ 'action #'ement-room-reaction-button-action
+ 'follow-link t
+ 'help-echo (lambda (_window buffer _pos)
+ ;; NOTE: If the reaction key
string is a Unicode character composed
+ ;; with, e.g. "VARIATION
SELECTOR-16", `string-to-char' ignores the
+ ;; composed
modifier/variation-selector and just returns the first
+ ;; character of the string.
This should be fine, since it's just
+ ;; for the tooltip.
+ (concat
+ (get-char-code-property
(string-to-char key) 'name) ": "
+ (senders-names senders
(buffer-local-value 'ement-room buffer))))))
+ (local-user-p (cl-member (ement-user-id
(ement-session-user ement-session)) senders
+ :key #'ement-user-id :test
#'equal)))
+ (when local-user-p
+ (add-face-text-property 0 (length string) '(:box (:style
pressed-button) :inverse-video t)
+ nil string))
+ (ement--remove-face-property string 'button)
+ string))
+ (senders-names (senders room)
+ (cl-loop for sender in senders
+ collect (ement--user-displayname-in room sender)
+ into names
+ finally return (string-join names ", "))))
+ (if-let ((reactions (map-elt (ement-event-local event) 'reactions)))
(cl-loop with keys-senders
for reaction in reactions
for key = (map-nested-elt (ement-event-content reaction)
'(m.relates_to key))
for sender = (ement-event-sender reaction)
do (push sender (alist-get key keys-senders nil nil
#'string=))
finally do (setf keys-senders (cl-sort keys-senders #'> :key
(lambda (pair) (length (cdr pair)))))
- finally return (concat "\n " (mapconcat #'format-reaction
keys-senders " "))))
- ""))
+ finally return (concat "\n " (mapconcat #'format-reaction
keys-senders " ")))
+ "")))
(cl-defun ement-room--format-message (event room session &optional (format
ement-room-message-format-spec))
"Return EVENT in ROOM on SESSION formatted according to FORMAT.