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

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

[elpa] externals/ement 89e91b8364 3/3: Change: Don't offer spaces when c


From: ELPA Syncer
Subject: [elpa] externals/ement 89e91b8364 3/3: Change: Don't offer spaces when completing rooms to view
Date: Sat, 22 Oct 2022 10:57:36 -0400 (EDT)

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

    Change: Don't offer spaces when completing rooms to view
---
 README.org    | 3 ++-
 ement-lib.el  | 7 ++++++-
 ement-room.el | 4 +++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index d867b86522..0aed164a5b 100644
--- a/README.org
+++ b/README.org
@@ -289,7 +289,8 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 
 ** 0.5-pre
 
-Nothing new yet.
+*Changes*
++ When selecting a room to view with completion, don't offer spaces.
 
 ** 0.4
 
diff --git a/ement-lib.el b/ement-lib.el
index 098b30de9c..974ee3a0c7 100644
--- a/ement-lib.el
+++ b/ement-lib.el
@@ -739,6 +739,10 @@ USER is an `ement-user' struct."
 ;; These functions aren't expected to be called by code in other packages (but 
if that
 ;; were necessary, they could be renamed accordingly).
 
+(defun ement--room-space-p (room)
+  "Return non-nil if ROOM is a space."
+  (equal "m.space" (ement-room-type room)))
+
 (cl-defun ement--prism-color (string &key (contrast-with (face-background 
'default nil 'default)))
   "Return a computed color for STRING.
 The color is adjusted to have sufficient contrast with the color
@@ -924,7 +928,7 @@ period, anywhere in the body."
     (when body
       (string-match-p (rx (or space bos) "@room" eow) body))))
 
-(cl-defun ement-complete-room (&key session predicate
+(cl-defun ement-complete-room (&key session (predicate #'identity)
                                     (prompt "Room: ") (suggest t))
   "Return a (room session) list selected from SESSION with completion.
 If SESSION is nil, select from rooms in all of `ement-sessions'.
@@ -941,6 +945,7 @@ suggested room."
                (name-to-room-session
                 (cl-loop for session in sessions
                          append (cl-loop for room in (ement-session-rooms 
session)
+                                         when (funcall predicate room)
                                          collect (cons (ement--format-room 
room 'topic)
                                                        (list room session)))))
                (names (mapcar #'car name-to-room-session))
diff --git a/ement-room.el b/ement-room.el
index 7e969b2f61..388d77b191 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -1763,7 +1763,9 @@ reaction string, e.g. \"👍\"."
 (defun ement-room-view (room session)
   "Switch to a buffer showing ROOM on SESSION.
 Uses action `ement-view-room-display-buffer-action', which see."
-  (interactive (ement-complete-room :session (ement-complete-session) :suggest 
nil))
+  (interactive (ement-complete-room :session (ement-complete-session) :suggest 
nil
+                 :predicate (lambda (room)
+                              (not (ement--room-space-p room)))))
   (pcase-let* (((cl-struct ement-room (local (map buffer))) room))
     (unless (buffer-live-p buffer)
       (setf buffer (ement-room--buffer session room (ement-room--buffer-name 
room))



reply via email to

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