Commit graph

762 commits

Author SHA1 Message Date
Adam Porter
6dc47f683c Add: Format m.file events 2022-05-02 06:37:08 -05:00
Adam Porter
b3b1bd84b0 Tidy: (ement-upload)
Let ement-api do that.
2022-05-02 06:36:54 -05:00
Adam Porter
478091be38 Add: (ement-room--format-m.image) Linkify image URLs
When not showing images (when ement-room-images is nil), linkify the
URL to the image.

Thanks to @Wibjarm:matrix.org for reporting.
2022-05-02 06:36:54 -05:00
Adam Porter
c827e96d62 Fix: (room-defevent "m.room.message") Replaced messages
When reopening closed room buffers that contain retro-loaded messages
that include events that have been replaced by later edits, the
original messages were inserted alongside the edits, because the edit
events were inserted before the original events, so the original
events were not replaced by the edits.

This happened because the edits were processed before the originals,
because the events were stored out-of-order in the timeline.  Now,
this shouldn't have been the case, because when retro-loading
messages, we store them at the beginning of the timeline, before the
newer events.  But, for some reason, this isn't always working.  The
Matrix spec says that the definition of "chronological order" is
up to the server, so maybe it's not always returning them in the order
we would expect.

So this is a mildly hacky workaround: if the event's unsigned data
indicates it's been replaced, we just don't insert it.  Theoretically,
we should already have any such replacing event.

If we wanted to be extra careful, we could look up the replacing event
in the hash table to ensure we've got it, but we can add that later if
necessary; for now, let's not.
2022-05-02 04:54:12 -05:00
Adam Porter
8651e480ee Tidy: Declare function 2022-05-02 04:01:38 -05:00
Adam Porter
7e9eb20980 Fix: (ement-room-mode-map) ement-room-occur binding 2022-05-02 04:01:13 -05:00
Adam Porter
fcf9ad92b4 Add: (ement-room-occur) et al. 2022-04-29 16:04:27 -05:00
Adam Porter
1a6b77ec51 Fix: (ement-room-find-event) Use event ID
For some reason, e.g. membership events in the EWOC are not always
`eq', so just compare IDs.
2022-04-29 15:58:16 -05:00
Adam Porter
a16db0ce6b Tidy: (ement-room-retro-to) Declare indentation 2022-04-29 14:34:15 -05:00
Adam Porter
7a6390537f Add: Go to events in matrix.to URLs when possible 2022-04-29 14:33:31 -05:00
Adam Porter
80ae7dc83e Tidy: Docstrings 2022-04-29 13:45:03 -05:00
Adam Porter
7f118498f4 Fix: Compilation warning 2022-04-29 13:38:26 -05:00
Adam Porter
65ead54698 Add/Change: (ement-taxy-define-key space-p)
Group spaces separately, for clarity.  The UI isn't ideal yet, but
it's an improvement.
2022-04-28 15:59:02 -05:00
Adam Porter
255ffbf052 Change/Fix: (ement-room--insert-event) Refactor and fix name headers
Ideally we would just call ement-room--insert-sender-headers for the
proper nodes, but at the moment this seems to work properly, so let's
just use this.  We can refactor this into that again later.
2022-04-28 08:03:28 -05:00
Adam Porter
e047677fa0 Change/Fix: (ement-room--insert-sender-headers) Refactor and fix
Now works with read markers, is clearer, etc.
2022-04-28 07:20:16 -05:00
Adam Porter
a929af9fa3 Fix: (ement-room-set-message-format) Set margins in buffer
Not just with set-window-margins.
2022-04-28 05:56:07 -05:00
Adam Porter
d9fef46f1b Fix: (ement-room--insert-event) Elemental-style message format 2022-04-27 11:52:42 -05:00
Adam Porter
5bddd9282e Add/Fix: (ement--xml-escape-string, ement-room--format-body-mentions)
Escape non-XML(/HTML?) characters in HTML-formatted mentions.
2022-04-27 11:31:55 -05:00
Adam Porter
d4020544f1 Add: Linkify mentions in outgoing messages 2022-04-26 08:08:30 -05:00
Adam Porter
01d6bd612a Tidy: (ement-room-leave) 2022-04-26 07:56:42 -05:00
Adam Porter
aebf61de4a Fix: (ement-room-goto-prev) When at point-max 2022-04-26 07:49:03 -05:00
Adam Porter
70da19e4c9 Add/Change: Refactor notification predicates and functions
This seems more logical and powerful.
2022-04-22 16:07:05 -05:00
Adam Porter
cba65e2c61 Add: (ement-notify--event-from-session-user-p)
And use in ement-notify-ignore-predicates.
2022-04-22 15:23:51 -05:00
Adam Porter
e54ad99b38 Add: (ement-room-warn-for-already-seen-messages) 2022-04-22 11:13:10 -05:00
Adam Porter
68c1d36a40 Add: (ement-room-shr-use-fonts) 2022-04-22 10:27:55 -05:00
Adam Porter
b4c954da1f Fix: (ement-notify--notifications-notify) Events without bodies
e.g. redacted events.
2022-04-22 10:13:18 -05:00
Adam Porter
85ee94cbf3 Add/Change: (defface ement-room-list-very-recent) et al. 2022-04-20 13:00:23 -05:00
Adam Porter
7526b2772c Add: (ement-notify--notify-if-unread) 2022-04-15 17:40:46 -05:00
Adam Porter
45b7882c8a Add: (ement-notify--notifications-notify) Show room avatars 2022-04-15 16:25:58 -05:00
Adam Porter
4ad7e03112 Fix: (ement-room-mwheel-scroll) Use window-start
It seems that `mwheel-scroll' no longer signals an error at
beginning-of-buffer, so to detect whether that is the case, we'll have
to compare window-start.
2022-04-15 16:25:53 -05:00
Adam Porter
8e9031b368 Change: Require Emacs 27.1+
I'm not even testing it on Emacs 26.3 anymore, and this will let me
eliminate the last byte-compilation warning.
2022-04-15 10:33:15 -05:00
Adam Porter
2e072efd5c Tidy: (ement-put-account-data) 2022-04-15 10:30:13 -05:00
Adam Porter
8430e1c813 Add/Change: (ement-complete-room) Complete in room list buffers
And use keyword args.
2022-04-15 10:30:13 -05:00
Adam Porter
163d26243e Fix: (ement-room--buffer) Invited rooms
Changed the slot used to track status.
2022-04-15 09:43:01 -05:00
Adam Porter
97ad5fe226 Add: (ement-taxy) Generated avatars using svg-lib
Thanks to @rougier for his great work on svg-lib.el!
2022-04-14 16:08:21 -05:00
Adam Porter
cf55d472f2 Fix: (ement-taxy-default-keys) Invited rooms
These need to be in a "chain" of Taxys so they are in an exclusive,
top-level group for proper group sorting.
2022-04-14 15:36:21 -05:00
Adam Porter
18a4550bd1 Fix: (ement-taxy-room-list) Sorting of left and invited room groups 2022-04-14 03:04:03 -05:00
Adam Porter
f46f4a222e Fix: (ement-room--format-message-body) Format of m.replace messages 2022-04-14 02:56:22 -05:00
Adam Porter
4692961c64 Add/Change: (ement-taxy) Various additions and improvements 2022-04-13 11:03:21 -05:00
Adam Porter
812efe8cf6 Change: (ement-taxy) Faces for group headers
To match the faces of the rooms they match.
2022-04-13 10:53:02 -05:00
Adam Porter
f39cf31d21 Change: (ement-room-scroll-up-mark-read) Keep rooms window visible
...when it's already visible.  This is useful when the rooms list is
in a side window.
2022-04-13 10:50:41 -05:00
Adam Porter
b956d368ff Add: (ement-ignore-user) 2022-04-12 09:37:15 -05:00
Adam Porter
0711a12abf Change: (ement-put-account-data) Add THEN argument 2022-04-12 09:35:30 -05:00
Adam Porter
be412426e4 Fix: (ement-room-images) Only warn on image-capable display 2022-04-11 06:59:21 -05:00
Adam Porter
3519799199 Meta: Upgrade makem.sh 2022-04-11 06:51:47 -05:00
Adam Porter
2a63e83192 Tidy: (ement-room--org-html-src-block) Use string-trim
Instead of org-trim.
2022-04-11 06:51:30 -05:00
Adam Porter
2fda057516 Tidy: Rename ement-room--handle-event(s) to --process-event(s) 2022-04-11 06:20:09 -05:00
Adam Porter
daa4ab8c1d Tidy: (ement-taxy) Prefix key functions with "key"
For clarity, and to avoid conflict with upcoming commands.
2022-04-11 06:14:32 -05:00
Adam Porter
816591cc77 Change: (ement-taxy-default-keys) Group invited rooms first 2022-04-11 06:14:20 -05:00
Adam Porter
5ce88056e8 Tidy: (ement-taxy-room-list) Macrolet for taxy-sort* calls 2022-04-11 06:13:37 -05:00