Commit graph

180 commits

Author SHA1 Message Date
Adam Porter
372184266b Comment: Add TODO 2021-07-28 22:13:30 -05:00
Adam Porter
98f12d9970 Add: (ement--room-display-name) Heroes-based name 2021-07-28 22:13:30 -05:00
Adam Porter
fc3579a21b Add: (ement-room-list) Member count 2021-07-28 20:12:12 -05:00
Adam Porter
08e806ca33 Add: (ement--push-joined-room-events) Track room summary 2021-07-28 20:11:42 -05:00
Adam Porter
cd59430081 Fix: Typing notification grace period
Had these two numbers swapped.  According to the spec, we should send
the notification every 15 seconds, while telling the server that the
notification is valid for 20 (for example).
2021-07-28 02:58:53 -05:00
Adam Porter
1ef1f5297f Comment: Add TODO 2021-07-28 02:38:52 -05:00
Adam Porter
02d8afff77 Add: (ement-notify-filters) and new predicates
Not sure if "filters" and "predicates" are the best names for these,
but NTIH (Naming Things Is Hard).
2021-07-28 00:37:25 -05:00
Adam Porter
c343cf2d88 Fix: (ement--hostname-uri) Handle 404 responses
Thanks to @akater for reporting.
2021-07-27 23:13:53 -05:00
Adam Porter
ee16b7e64a Add: Join/leave room commands 2021-07-27 22:07:26 -05:00
Adam Porter
9166360628 Tidy: (ement-room--user-color) Variable name
package-lint thought that "show-buffer" was a function call, and that
function was removed from earlier Emacsen.
2021-07-27 21:51:14 -05:00
Adam Porter
070dedb8c9 Tidy: Function declarations 2021-07-27 21:51:02 -05:00
Adam Porter
6f2a2f2e45 Tidy: Headers for package-lint
Even though these aren't packages, the way we call package-lint on
each file causes warnings for missing keywords.
2021-07-27 21:50:05 -05:00
Adam Porter
12f2f33712 Tidy: Docstrings
Thanks, Checkdoc.
2021-07-27 21:42:53 -05:00
Adam Porter
04774c617a Fix: (ement-room--add-reply) Only use join events
Thanks to @treed for reporting and testing.
2021-07-27 20:52:42 -05:00
Adam Porter
0aa366a85c Change: (ement-room-left-margin-width) Mention ttys in docstring 2021-07-27 05:04:09 -05:00
Adam Porter
1c31756af5 Change: (ement-room--insert-events) Follow new events
When window-point is at point-max, keep it there after inserting
events.
2021-07-27 02:22:37 -05:00
Adam Porter
89b7b28f89 Add: Notifications 2021-07-27 01:52:22 -05:00
Adam Porter
2b68deb0e4 Change: (ement-room-message-format-spec) Set default to IRCy
Actually change it this time.
2021-07-27 01:20:14 -05:00
Adam Porter
5c96553c36 Add: Show images in rooms 2021-07-26 23:26:52 -05:00
Adam Porter
510487207c Change: (ement-room--ewoc-last-matching) Take EWOC as first argument
More consistent and flexible.  Also declare indentation.
2021-07-26 23:19:16 -05:00
Adam Porter
344be71dda Add: (ement-room--format-message) Zero-width spaces after names
This allows commands like dabbrev-expand to work for displaynames,
otherwise they combine displaynames with the message bodies.
2021-07-26 20:00:15 -05:00
akater
abd8cf9fbd Fix: (ement-room) Require mwheel
Silences byte-compiler on Emacsen built --without-x.

Fixes #5.
2021-07-26 19:00:11 -05:00
Adam Porter
ac2af07325 Add: Send typing notifications 2021-07-26 18:52:41 -05:00
Adam Porter
deeb8a6654 Add: Mentions
The ement-user struct gains a new slot, which invalidates structs in
saved sessions, so users will need to log in again.
2021-07-26 18:20:18 -05:00
Adam Porter
35d39b7b9a Docs: Clarify binding for sending messages/replies 2021-07-26 18:13:38 -05:00
Adam Porter
cc0e6a4914 Fix: (ement-room--insert-events) Select window before inserting
This seems to actually fix the bug now, hopefully for good...although
I've said that, before...but I think I finally found the root
cause (at least, without digging into EWOC internals).
2021-07-26 13:38:08 -05:00
Adam Porter
8427919dbd Debug: (ement-room--insert-event) Add more debug code 2021-07-26 13:38:08 -05:00
Adam Porter
162ab78e16 Docs: Add logo 2021-07-26 13:38:08 -05:00
Adam Porter
b44e7b18b6 Fix: Display-name help-echo 2021-07-25 23:21:54 -05:00
Adam Porter
2ce26f405a Fix/Tidy: (defevent "m.typing") Show ID if no displayname
Maybe someday we'll use /members to get the displayname.
2021-07-25 23:21:54 -05:00
Adam Porter
d1764ccf7a Add: (defface ement-room-message) 2021-07-25 23:21:54 -05:00
Adam Porter
aeeb16eee8 Change: (ement--sync) Use user-error instead of asserting 2021-07-25 23:21:54 -05:00
Adam Porter
87b5fd458e Docs: Add to rationale 2021-07-25 23:21:54 -05:00
Adam Porter
a523e9d41c Docs: Update screenshots 2021-07-25 23:21:54 -05:00
Adam Porter
8035326a29 Change: (ement-room-message-format-spec) Use "IRCy" by default
I think this may be a better default, because it allows more of
Emacs's power to be used, e.g. Occur buffers to show all messages from
a user (which needs the username displayed with each message rather
than as a header above a group of messages).
2021-07-25 23:21:54 -05:00
Adam Porter
c5e83b76d7 Add: Emacs bookmark support
Room buffers and the room list buffer can be bookmarked.

Especially useful with Burly: <https://github.com/alphapapa/burly.el>.
2021-07-25 23:21:54 -05:00
Adam Porter
7c589b7b72 Fix: (ement-room--insert-events) Work around weird reply-to-reply bug 2021-07-25 20:42:30 -05:00
Adam Porter
8591a77b31 Fix: (ement-room-message-format-spec) Require file in setter
Thanks to Bowuigi for reporting.
2021-07-25 17:17:38 -05:00
Adam Porter
d94fc4e039 Tidy: (ement-room-retro-callback) Use buffer slot 2021-07-25 16:08:12 -05:00
Adam Porter
9266157e89 Fix: (ement-room) Define faces before options
Since ement-room-user is used in an option's setter.
2021-07-25 16:01:24 -05:00
Adam Porter
5029d0af3e Add: Header line 2021-07-25 15:58:57 -05:00
Adam Porter
da363bc8d4 Tidy: (ement-room-replying-to-event) Use event rather than ID 2021-07-25 15:14:21 -05:00
Adam Porter
9a733480f2 Fix: (define-widget ement-room-membership) Show displayname
Needed for headerless, IRC-style formatting.
2021-07-25 15:14:21 -05:00
Adam Porter
85f42c45aa Fix: (ement-room--format-message) Prism face for %B 2021-07-25 15:14:21 -05:00
Adam Porter
5eb3be0c02 Docs: New screenshot of IRC-style formatting 2021-07-25 14:32:42 -05:00
Adam Porter
e98fb62ae0 Change/Fix: Displaynames when calling /messages
The ultimate fix for this was to send /messages the proper kind of
filter, a RoomEventFilter, rather than sending it the kind of filter
that /sync expects.  This is legitimately confusing, and there's even
an issue about it:
<https://github.com/matrix-org/matrix-doc/issues/706>.

This commit fixes the problem by using the right kind of filter for
/messages.

Thanks to Michael (@t3chguy) in #matrix-dev:matrix.org, who helped me
identify the problem.

Also thanks to him for clarifying that membership events may be in
both state and timeline events in a room, so calculating a displayname
requires searching both.  This commit tries to be more...comprehensive
in doing this (perhaps more than necessary, but tidying that up can be
done later if optimization is needed).
2021-07-25 14:27:20 -05:00
Adam Porter
9c707a367b Comment: Add NOTE 2021-07-25 14:18:56 -05:00
Adam Porter
5d32a31851 Comment: Add FIXME 2021-07-25 14:18:18 -05:00
Adam Porter
0e89d54275 Add/Change: More flexible sender display, IRC-style options 2021-07-25 14:18:18 -05:00
Adam Porter
3099061f17 Change/Fix: (ement-room--buffer) Set buffer slot sooner 2021-07-25 11:11:00 -05:00