[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))