Commit graph

27 commits

Author SHA1 Message Date
5277eceb01 feat: reworked buffer controller
basically now calling recv assumes we have locked the editor state, and
no more operations will be enqueued. this allows to safely transform and
send server operations. the way local ops are transformed and sent is
still kinda buggy but it mostly works? "dead"locks sometimes until more
stuff arrives. also buffercontroller no longer implements operation
factory, you gotta make a factory yourself
2023-09-10 03:01:37 +02:00
b2520898b5 chore: moved factory under api, restructured 2023-09-10 03:00:47 +02:00
14145ec369 fix: kind of resolved local race condition...
... but it became so much spaghetti that I'm not eating any more pasta
for a while

seriously tho must be resolved, maybe moving this logic completely
serverside?
2023-09-07 20:39:45 +02:00
1e3439e08e feat: send md5 hash with rawops
this should have a tiny impact on performance, but should be monitored
2023-09-05 20:40:31 +02:00
fb7f4c1b31 fix: updated cached buffer immediately 2023-09-05 20:40:10 +02:00
eeececf1b1 fix: attempt to solve client edits race condition
basically send increments a counter and we compare that before
transforming operations, allowing to stop processing, undo and try to
receive again. This won't solve all issues but should make them much
more rare? I hope
2023-09-05 20:13:09 +02:00
81bbef6072 feat: helpers in textchange to convert to rowcol 2023-09-04 03:10:33 +02:00
690a1915c9 feat: include references to buffer before and after 2023-09-04 03:09:32 +02:00
1034f0482c chore: moved controller under api module 2023-09-03 23:04:08 +02:00
5f1f43e645 feat: derive Debug for controllers 2023-08-21 02:47:52 +02:00
0cce1d1ea0 feat: added poll/try_recv to controller, fixes
added Default derive to TextChange, added docs for poll and try_recv
methods, implemented new functionality in controllers, using a watch
channel (or reusing if available). Fixed global being always active and
wrongly imported when inactive.
2023-08-21 02:35:56 +02:00
db0c696cf9 fix: added factory doctests, caught bugs 2023-08-20 08:24:58 +02:00
4764e47da5 fix: added proto docs, changed a little bit 2023-08-20 07:32:08 +02:00
464d58f0ee feat: added some gifs, explained async_trait fn 2023-08-20 04:00:52 +02:00
2facbd8f9e chore: keep track of bug 2023-08-20 00:47:53 +02:00
2ad5d4f6b0 docs: a ton of documentation 2023-08-20 00:46:55 +02:00
1e05af6d79 feat: sync send in controller, docs, better import 2023-08-19 21:44:27 +02:00
bd6132dc1e feat: stop worker when dropping controller, unwraps 2023-08-19 04:02:21 +02:00
fecd28165a feat: plainer names and prefixed prelude 2023-08-17 02:58:55 +02:00
b8578a89a4 fix: inaccessible fields, pub(crate) constructor 2023-08-17 00:04:37 +02:00
f8e77f0827 feat: reworked client, added static instance 2023-08-16 23:09:47 +02:00
96217d1a1a feat: standardized Controller and ControllerWorker 2023-08-16 18:58:42 +02:00
74faca0f25 chore: cleaned up server and lib after split 2023-08-16 18:58:11 +02:00
8595d0c927 fix: imports, Arc<T> 2023-08-11 15:50:17 +02:00
37e6268f0c chore: buffer(controller->handle, client->controller) 2023-08-11 15:33:40 +02:00
5cddb27b98 feat: initial features splitting, added singleton 2023-07-30 22:58:24 +02:00
02b2588073 feat: major restructure, workspace rework, tweaks
all controllers use internal mutability so that they can all be put
behind Arcs
2023-07-30 17:48:55 +02:00