Přemysl Eric Janouch
7806d4bd4e
xC/xP: improve rendering of highlighting actions
2022-09-20 15:30:07 +02:00
Přemysl Eric Janouch
c0e1cd57b2
Make sure to always find installed plugins
2022-09-19 04:26:35 +02:00
Přemysl Eric Janouch
00184811ea
xP: make the prompt look more xC-like
2022-09-19 03:18:31 +02:00
Přemysl Eric Janouch
ec20fdef7b
xP: show all completion options
2022-09-18 05:54:23 +02:00
Přemysl Eric Janouch
21e5d80ab1
xC: improve Readline completion
...
The autocomplete for /set used to be extremely annoying,
and menu-complete-display-prefix also prevents mistaken highlights.
One downside is that using plain Tab in channels no longer
just inserts the last-talking nickname, one needs to press it twice.
2022-09-18 02:48:28 +02:00
Přemysl Eric Janouch
ff243c1d11
xP: implement Readline's M-l, M-u, M-c
2022-09-18 01:59:11 +02:00
Přemysl Eric Janouch
e2ef7d668c
xP: implement Readline's M-b and M-f
2022-09-18 01:10:03 +02:00
Přemysl Eric Janouch
b979257c3a
xP: implement Readline's M-< and M->
2022-09-18 01:10:03 +02:00
Přemysl Eric Janouch
840b646700
xC: reorganize relay code, improve logging
...
Even with one forward function declaration down,
it was possible to move most code to a more convenient location.
Most logging has thus been fixed to go to buffers.
2022-09-17 00:32:14 +02:00
Přemysl Eric Janouch
126105fa4f
xC: don't abort on accept() failure
...
Just disable the relay.
2022-09-17 00:31:23 +02:00
Přemysl Eric Janouch
e2f3fc2e79
xC: clean up
2022-09-17 00:31:23 +02:00
Přemysl Eric Janouch
b55bae50df
Update some documentation
2022-09-16 03:52:49 +02:00
Přemysl Eric Janouch
430968e5d5
xP: make non-connected states more apparent
2022-09-16 03:19:48 +02:00
Přemysl Eric Janouch
d5153fe354
xC/xP: implement M-H in the web frontend
2022-09-16 02:52:16 +02:00
Přemysl Eric Janouch
ee76186bef
xP: abandon the idea of a configuration file
2022-09-16 01:21:35 +02:00
Přemysl Eric Janouch
6f39aa6615
xP: use the binary protocol for incoming events
...
And batch event messages together as much as possible.
JSON has proven itself to be really slow
(for example, encoding/json.Marshaler is a slow interface),
and browsers have significant overhead per WS message.
Commands are still sent as JSON, sending them in binary
would be a laborious rewrite without measurable merits.
The xP server now only prints debug output when requested,
because that was another source of major slowdowns.
2022-09-16 00:51:11 +02:00
Přemysl Eric Janouch
e87cc90b5e
xP: improve comments in protocol code generator
2022-09-15 05:12:07 +02:00
Přemysl Eric Janouch
98b0a4ef3d
xP: further optimize JSON marshalling
2022-09-15 03:16:16 +02:00
Přemysl Eric Janouch
9cf44aa4dd
xP: speed up log decoding
2022-09-15 02:32:58 +02:00
Přemysl Eric Janouch
b53fc1918f
xP: fix log JSON serialization
2022-09-15 01:51:40 +02:00
Přemysl Eric Janouch
92f2f6895b
xP: use buffered reads
2022-09-14 07:11:05 +02:00
Přemysl Eric Janouch
c1d2e38840
xP: generate our own JSON marshallers
...
For non-trivial types, which are expensive to serialize
with encoding/json's struct reflection.
2022-09-14 06:56:36 +02:00
Přemysl Eric Janouch
f89f21a47f
xP: pass all events through one handler
...
This is a mild clean up.
2022-09-14 06:56:36 +02:00
Přemysl Eric Janouch
fa85ea8208
xP: parallelize event reception and sending
...
Still trying to make the frontend load tolerably fast,
still unsuccessfully.
2022-09-14 06:56:36 +02:00
Přemysl Eric Janouch
b728235b6c
xP: move to a WebSocket package with compression
...
Compression happens to be broken in Safari,
though luckily there are friendlier browsers one can use.
2022-09-14 06:56:35 +02:00
Přemysl Eric Janouch
d31ab67268
xC: mildly optimize relay traffic
2022-09-14 01:01:19 +02:00
Přemysl Eric Janouch
b2b3093e0e
xP: remove debugging protocol logs from JS
2022-09-14 01:01:10 +02:00
Přemysl Eric Janouch
a551e911ab
xP: adjust buffer list iteration and styling
...
M-a and M-! should iterate, rather than keep jumping back
to the same buffers.
The current item wasn't visible enough,
and it jumped around in my 1.5-scale Firefox.
2022-09-13 03:21:41 +02:00
Přemysl Eric Janouch
a61789637a
xP: deal with macOS/Blink for good
2022-09-12 16:45:29 +02:00
Přemysl Eric Janouch
8968100a28
xP: improve favicon behaviour
...
Make it black when disconnected, and orange when the document
is hidden but the current tab is highlighted.
2022-09-12 03:49:29 +02:00
Přemysl Eric Janouch
3b6c29d676
xC: silence some compiler warnings
2022-09-11 22:16:35 +02:00
Přemysl Eric Janouch
b4ee523628
xP: bind buffer iteration to M-PageUp/PageDown
2022-09-11 21:50:09 +02:00
Přemysl Eric Janouch
c3a52b9e4c
xP: indicate hidden buffer lines
2022-09-11 21:50:09 +02:00
Přemysl Eric Janouch
96fc12bc4c
xC/xP: send buffer type and server state
...
Also make PM highlighting behaviour consistent.
2022-09-11 21:50:08 +02:00
Přemysl Eric Janouch
1493d9998b
xC: clean up
2022-09-11 19:11:47 +02:00
Přemysl Eric Janouch
36f77e74fb
xP: change the favicon when highlighted
2022-09-11 19:10:41 +02:00
Přemysl Eric Janouch
23deca45c9
xP: fix non-ASCII text completion
2022-09-11 19:10:40 +02:00
Přemysl Eric Janouch
62773acaa0
xP: beep on highlight
...
800 Hz seems like it could match a POST beep.
2022-09-11 03:42:08 +02:00
Přemysl Eric Janouch
7e3919e25d
xP: add basic buffer input history
...
Bind M-p and M-n as in xC.
Also make all our bindings reachable on macOS.
2022-09-11 03:10:23 +02:00
Přemysl Eric Janouch
4bc2f736f2
xC: make terminal attributes abstract
...
And translate them for frontends.
This is very long overdue, and a rather significant cleanup.
Bump liberty.
2022-09-11 01:20:18 +02:00
Přemysl Eric Janouch
add670212f
xP: remember buffer input selections
2022-09-11 01:01:53 +02:00
Přemysl Eric Janouch
95aa89ee97
xP: bind M-h to toggle history, and adjust focus
2022-09-10 20:39:03 +02:00
Přemysl Eric Janouch
0bc2c12eec
xP: handle the M-Tab binding from xC
2022-09-10 19:36:49 +02:00
Přemysl Eric Janouch
3330683ad6
xP: handle M-a and M-! bindings from xC
2022-09-10 19:34:01 +02:00
Přemysl Eric Janouch
0015d26dc8
xC/xP: support hiding unimportant messages at all
2022-09-10 19:01:42 +02:00
Přemysl Eric Janouch
7d5e63be1f
xC: deal with so far unexpected multiline messages
...
And get rid of an outdated unmarked TODO comment.
2022-09-10 18:51:27 +02:00
Přemysl Eric Janouch
e7d0f2380e
xC: split Command.BUFFER_INPUT on newlines
2022-09-10 18:51:27 +02:00
Přemysl Eric Janouch
36529a46fd
xP: also scroll to bottom on window resize
2022-09-10 18:10:08 +02:00
Přemysl Eric Janouch
632ac992ab
xC/xP: only send buffer stats in the initial sync
...
The client and frontends track these separately,
there is no need for hard synchronization.
2022-09-10 17:38:33 +02:00
Přemysl Eric Janouch
d29e2cbfe8
xP: detect links in the log
2022-09-10 17:18:22 +02:00