Commit graph

114 commits

Author SHA1 Message Date
Adam Porter
aae99327e3 Fix: (ement-room--insert-ts-headers) Compare header properly 2021-07-21 09:16:26 -05:00
Adam Porter
d8a48fe71d Change: (ement-room--insert-events) Use eq to compare room struct
This seems to make sense, because it should be the same object.
2021-07-21 09:13:14 -05:00
Adam Porter
387e55d39b Comment: Remove obsolete FIXMEs 2021-07-17 10:18:34 -05:00
Adam Porter
3e90becec5 Change: (ement-auto-sync) Enable by default
AFAIK it works fine, and this is what users will expect.
2021-07-17 10:16:16 -05:00
Adam Porter
82e0f20669 Change/Fix: (ement--write-session) Clear unnecessary slots
I found that some ement-user structs were not being read properly (and
who knows why--tracing that down may be tedious), which caused errors
when rooms were displayed after loading the session, so for now we'll
just clear these slots.  This means that the first sync will be an
initial sync, so we aren't persisting the whole session.  That may not
be ideal, but it's much simpler and avoids a whole lot of potential
bugs, too.
2021-07-17 10:08:45 -05:00
Adam Porter
ae759fb041 Change/Fix: (ement-api) Use :noquery for plz requests
This requires a just-pushed change to plz.el.
2021-07-17 09:50:29 -05:00
Adam Porter
d0d6898a0a Change: Save session struct
This seems to work correctly, but it wouldn't surprise me if some
unreadable types accidentally end up in the data and cause a read
error at some point (which this tries to account for).  If so, those
types should be omitted from the saved session struct.

Also, this effectively saves all room events locally, which means they
will accumulate over time.  This is probably undesirable, and some
kind of limiting or filtering should be implemented.
2021-07-17 09:37:16 -05:00
Adam Porter
e5c25307b2 Add/Change: Use .well-known server URI when available
Fixes #2.  Thanks to Daniel Pérez (@0xSteeW) for reporting.
2021-07-17 08:19:12 -05:00
Adam Porter
faab3c7316 Change/Fix: (ement-connect) User ID format
Fixes #3.  Thanks to @defaultxr for reporting.
2021-07-17 07:24:06 -05:00
Adam Porter
47b2870f97 Change/Fix: (ement-save-session-file) Use own token file
Stop using same file as matrix-client.el uses.
2021-07-17 07:14:24 -05:00
Adam Porter
02567eec7e Add: (ement-connect) Check supported login flows 2021-07-17 06:46:59 -05:00
Adam Porter
ef63676430 Fix: (ement--login-callback) Do initial sync
A silly oversight.

Fixes #4.  Thanks to @mekeor for reporting.
2021-07-17 06:44:58 -05:00
Adam Porter
258b3539ab Change: (defface ement-room-user) Remove :extend
Only supported in Emacs 27+, so maybe this should only be added when
explicitly requiring Emacs 27.
2021-07-04 16:52:56 -05:00
Adam Porter
587802bae3 Change: Spacing around timestamp headers 2021-07-04 16:38:02 -05:00
Adam Porter
9ce62087ac Add: Separator between events 2021-07-04 16:35:33 -05:00
Adam Porter
64a5e5d6aa Comment: Add FIXME 2021-07-04 16:34:58 -05:00
Adam Porter
baabfeb61b Change: (defface ement-room-timestamp-header) :height 1.1 2021-07-04 16:34:17 -05:00
Adam Porter
41d45b93b5 Change: (defface ement-room-self) Inherit ement-room-user 2021-07-04 16:24:26 -05:00
Adam Porter
f1a35869ff Add/Change: (define-widget ement-room-membership) Event as value
The Widget library is still mysterious to me, but some trial-and-error
helps.  This makes the ement-room-membership widget's value the Matrix
event struct, and it uses a :value-create function to insert the
string.

This pattern can probably be used for other widgets in the future,
e.g. for event type-specific widgets.
2021-07-04 14:57:10 -05:00
Adam Porter
3dd0c7c7af Add: (ement-room--format-event) Tooltip for unhandled event types 2021-07-04 14:56:34 -05:00
Adam Porter
50b9492715 Change: (ement-room--format-message) Handle empty specs better
Rather than erroring, insert a message into the buffer, with a tooltip
showing the raw event.
2021-07-04 14:56:10 -05:00
Adam Porter
2e14c1c9f2 Add: Show date in timestamp header where it changes between messages 2021-07-04 14:56:10 -05:00
Adam Porter
86221bda9d Fix: (ement-room--insert-ts-headers) Don't skip events
It was only comparing pairs of events, stepping by two instead of one.
2021-07-04 14:56:10 -05:00
Adam Porter
3c52ee0412 Debug: (ement-room--insert-ts-headers) Add debug function 2021-07-04 14:56:10 -05:00
Adam Porter
e862ea3dca Tidy: (ement-room--insert-ts-headers) 2021-07-04 13:47:35 -05:00
Adam Porter
c115f7e6fc Change/Fix: (--room-display-name) Also check timeline events
Despite what the spec seems to say, in practice some rooms seem to
have m.room.name events only in their timeline events rather than their
state events.  (Maybe this depends on room state, recent events, etc.)
So we check both.

Also update the spec URL, because they changed the HTML anchors and
broke the links.
2021-07-04 12:39:00 -05:00
Adam Porter
3ec21db7b6 Tidy: (ement-room--format-user) 2021-07-04 12:38:28 -05:00
Adam Porter
d0fd9c2bda Change: (defface ement-room-user) Add overline and extend
Helps to distinguish where senders change, especially when not using
prism mode.
2021-07-04 12:37:29 -05:00
Adam Porter
70e7cc9191 Meta: Update makem.sh, Makefile 2020-12-19 13:06:42 -06:00
Adam Porter
96a6fd4415 Fix: (ement-room--user-color) 2020-12-19 11:41:23 -06:00
Adam Porter
e9ccdfa85d Change: Use color functions from modus-themes
Thanks to Protesilaos Stavrou (@protesilaos) for this elegant
implementation.
2020-12-11 20:05:08 -06:00
Adam Porter
eafc21a536 Fix: ement-disconnect
Actually stop syncing and clear the session.
2020-12-05 19:42:15 -06:00
Adam Porter
c302b4ece3 Change: (ement-room-prism) Name-only by default 2020-12-05 16:24:51 -06:00
Adam Porter
1f392c78be Add: ement-room-prism
Squashed commit of the following:

commit 34ad5b4810
Author: Adam Porter <adam@alphapapa.net>
Date:   Sat Dec 5 16:23:51 2020 -0600

    WIP: Seems to work decently

commit e5edcfc908
Author: Adam Porter <adam@alphapapa.net>
Date:   Sat Dec 5 04:18:09 2020 -0600

    WIP
2020-12-05 16:24:21 -06:00
Adam Porter
670a4b3fb0 Meta: NOTES.org symlink
This is more convenient, and it should be obvious enough what the
symlink means.
2020-12-05 02:23:42 -06:00
Adam Porter
cde2c64815 Comment: Add FIXME 2020-12-04 23:11:53 -06:00
Adam Porter
981dc8b3a8 Add: User ID tooltip on user displaynames 2020-12-04 22:48:39 -06:00
Adam Porter
e8f9f91c61 Tidy: Docstring, args 2020-12-04 19:25:48 -06:00
Adam Porter
d5df450e16 Fix: (--push-joined-room-events) Only set prev-batch on initial sync 2020-12-04 19:18:10 -06:00
Adam Porter
1b0556a3aa Comment: Add TODO 2020-12-04 19:17:58 -06:00
Adam Porter
8b90f05265 Add: help-echo with full timestamp on message timestamps 2020-12-04 19:16:57 -06:00
Adam Porter
cb3e16143b Add: -room-retro-messages-number 2020-12-04 19:16:44 -06:00
Adam Porter
c74cc89a45 Fix: Replace ts requirement
Used for ts-human-format-duration in ement-room-list.
2020-12-04 18:12:36 -06:00
Adam Porter
c7d19f38a5 Change: Call ement-list-rooms after login
Users can disable this by customizing ement-after-login-hook.
2020-12-04 03:26:50 -06:00
Adam Porter
8df425710a Change: Improve room-switching commands and binds 2020-12-04 03:08:09 -06:00
Adam Porter
2d1d7bc995 Change: (ement-view-room) Prefix for pop-to-buffer-same-window 2020-12-04 03:02:35 -06:00
Adam Porter
062b362066 Add: Timestamp headers 2020-12-04 02:50:08 -06:00
Adam Porter
8608273aba Docs: Update usage 2020-12-03 22:08:48 -06:00
Adam Porter
555049a242 Docs: New screenshot 2020-12-03 22:07:13 -06:00
Adam Porter
9e3c9268d1 Add: Room list
And associated changes.
2020-12-03 21:53:11 -06:00