emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ement 645537c07f 3/3: Add: (ement-directory-define-key


From: ELPA Syncer
Subject: [elpa] externals/ement 645537c07f 3/3: Add: (ement-directory-define-key people-p)
Date: Fri, 15 Sep 2023 00:57:48 -0400 (EDT)

branch: externals/ement
commit 645537c07f23e7d173047971e56c8e8c78fe5236
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Add: (ement-directory-define-key people-p)
    
    And use in ement-directory-default-keys.
---
 README.org         |  4 ++++
 ement-directory.el | 15 ++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 3a9368c874..8d4e3324f4 100644
--- a/README.org
+++ b/README.org
@@ -294,6 +294,10 @@ Ement.el doesn't support encrypted rooms natively, but it 
can be used transparen
 
 ** 0.13-pre
 
+*Additions*
+
++ Group joined direct rooms in directory buffers.
+
 *Fixes*
 
 + Name for direct rooms in directory buffers.
diff --git a/ement-directory.el b/ement-directory.el
index d5802179b8..8a3fb1954b 100644
--- a/ement-directory.el
+++ b/ement-directory.el
@@ -85,8 +85,21 @@
     (when (equal "m.space" type)
       "Spaces")))
 
+(ement-directory-define-key people-p ()
+  (pcase-let (((map ('room_id id) ('room_type type)) item)
+              ((map session) ement-directory-etc))
+    (pcase type
+      ("m.space" nil)
+      (_ (when-let ((room (cl-find id (ement-session-rooms session)
+                                   :key #'ement-room-id :test #'equal))
+                    ((ement--room-direct-p room session)))
+           (propertize "People" 'face 'ement-room-list-direct))))))
+
 (defcustom ement-directory-default-keys
-  '((joined-p)
+  '((joined-p
+     (people-p)
+     (and :name "Rooms"
+          :keys ((not people-p))))
     (space-p)
     ((size :> 10000))
     ((size :> 1000))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]