Commit graph

207 commits

Author SHA1 Message Date
ed151e2213 fix: docs, tests, leftovers 2023-09-10 04:23:39 +02:00
cf80104132 docs: updated features explaination 2023-09-10 03:47:59 +02:00
59aaf8f3b6 docs: fix references 2023-09-10 03:43:46 +02:00
6fe47ff682 fix: receive and return a runtime handle 2023-09-10 03:41:18 +02:00
4ec99bab36 chore: modularized crate into features
by default "client" is on so that it works like before but it's possible
to cherry pick features out and (for example) only build the grpc proto
structs
2023-09-10 03:40:31 +02:00
c0892b36cd docs: move descr directly into traits, not module 2023-09-10 03:39:44 +02:00
9040222570 docs: fix references 2023-09-10 03:06:47 +02:00
56dcf99778 fix: im dumb forgot to actually add api folder
also im lazy and dont want to redo last 2 commits because i wrote a ton
into last one :(
2023-09-10 03:03:49 +02:00
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
ed2f6688c3 docs: mentioned Instance early on 2023-09-05 01:31:57 +02:00
4bf3c1c7a5 fix: typo 2023-09-05 01:30:07 +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
adf6009472 feat: added Ignorable Error with generic default 2023-09-04 03:08:52 +02:00
f9977f0b14 fix: don't show source code in documentation 2023-09-03 23:04:19 +02:00
1034f0482c chore: moved controller under api module 2023-09-03 23:04:08 +02:00
9f8245a9a4 fix: ignore cursor events from self 2023-08-21 03:53:57 +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
3e434e3103 docs: link to factory examples subtly 2023-08-20 09:19:03 +02:00
af5fb90de3 docs: small details with refs 2023-08-20 09:16:20 +02:00
7f3cba475e docs: also test example docs for correctedness 2023-08-20 09:13:21 +02:00
7148b823e6 docs: smaller box 2023-08-20 08:37:19 +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
87c89f940a ci: fix don't test that 2023-08-20 07:11:42 +02:00
a68032d9e5 ci: don't test examples 2023-08-20 06:57:49 +02:00
b84cac724b docs: add link to feature comparison matrix 2023-08-20 06:52:36 +02:00
464d58f0ee feat: added some gifs, explained async_trait fn 2023-08-20 04:00:52 +02:00
bb10367b08 docs: fix missing colon and last warning 2023-08-20 03:36:50 +02:00
1f1e8a78ba docs: made it even fancier and added refs 2023-08-20 03:34:48 +02:00
5d6957c9ad docs: even better examples 2023-08-20 03:11:06 +02:00
3382ea72ea docs: fix example 2023-08-20 01:43:28 +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
489ade9127 feat: more stuff into prelude 2023-08-19 18:28:37 +02:00
87a1c17599 feat: both sync and async instance, sync feat 2023-08-19 18:28:27 +02:00
4562c2732b feat: faster accessor, fix prelude 2023-08-19 05:04:25 +02:00
4f3e09abd3 feat: instance is sync and way more elegant 2023-08-19 04:37:31 +02:00
bd6132dc1e feat: stop worker when dropping controller, unwraps 2023-08-19 04:02:21 +02:00
853d754d8b fix: pass runtime for callback spawning 2023-08-18 04:01:58 +02:00
bbdcfe2712 feat: attempt callback impl on generic controller 2023-08-17 04:36:59 +02:00
1cc03838eb feat: return controllers, add attach 2023-08-17 04:36:24 +02:00
463515da29 fix: pub static refs 2023-08-17 03:39:40 +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
9a1d84bc64 chore: split cursor and buffer protos 2023-08-16 17:08:53 +02:00
8595d0c927 fix: imports, Arc<T> 2023-08-11 15:50:17 +02:00
98cae0969d fix: remove workspace trait, add channel error 2023-08-11 15:34:04 +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
041acdbb94 feat: initial barebones structure for workspace 2023-07-13 01:35:18 +02:00
59a0f71754 fix: better names for delta operation args 2023-07-12 00:23:41 +02:00
ca42874590 feat: refactored and improved operation controller
now polling for changes returns span and text so that it's possible to
edit just the changed region. greatly improved controller internal api
with crate-level traits keeping error handling localized
2023-07-09 03:44:27 +02:00
d086997053 feat!: start+end in cursor, merged cursor structs 2023-07-05 00:09:09 +02:00
38911bdc31 feat: reworked cursor handle mechanism
instead of storing cursors it just streams them as they happen. instead
of just getting cursors from the controller, now you also send your
operations into it, mimicking more the behavior used for text ops
2023-07-04 22:54:25 +02:00
06523b2325 fix: factory delta with abs index and not skips 2023-07-04 00:58:56 +02:00
43634acc2c fix: remove unnecessary async, re-exported ot, refactor 2023-07-02 23:59:04 +02:00
365811d963 chore: thanks clippy 2023-07-01 20:22:39 +02:00
b9ab3403dd chore: aligned match case, renamed to unwrap_or_warn 2023-07-01 14:12:33 +02:00
2c695a41f6 fix: ignore errors better, unified op processing 2023-07-01 14:00:50 +02:00
107c4673ef chore: separated modules in a cargo workspace 2023-04-21 18:47:10 +02:00
c5d171a641 feat: add delta (replace with offset) in factory 2023-04-20 04:36:04 +02:00
97be3cf4ce fix: send mock values to unlock and stop workers 2023-04-20 04:27:11 +02:00
6fe92b9e8e chore: better logging of workers stopping 2023-04-20 04:26:59 +02:00
ebf25fee44 feat: cleaner way to detach and stop workers
actually the stopping channel doesn't fit super well inside the
OperationController itself since the tasks are handled above that
abstraction layer, but storing it inside makes my life incredibly
simpler so im gonna do that for now
2023-04-20 03:47:35 +02:00
1bde0d414e chore: separated op processor and controller 2023-04-20 03:25:07 +02:00
243f23a04b feat: propagate range of buffer affected by change
added some const functions to calculate leading and tailing noops, made
apply() and process() return Range<u64>. actors implementation is still
awful but will do them properly in the future
2023-04-19 20:13:36 +02:00
7f41127f8b chore: import fixes 2023-04-19 19:18:48 +02:00
3e95ff9971 chore: at least log ignored errors 2023-04-19 19:18:31 +02:00
a843cf6cb9 fix: force unix fileformat 2023-04-19 18:18:13 +02:00
3609dbfa84 chore: finished reimplementing features modularly
now everything that worked in 0.2 seems to work again, and should
actually be better. plus, merging differences is done properly and thus
should be way more reliable
2023-04-19 04:18:22 +02:00
b8aa7d5fce fix: temp value was dropped 2023-04-18 21:46:19 +02:00
ead5ffc49c chore: struct for storing cursor states 2023-04-17 14:57:06 +02:00
35935d88a4 chore: rewrote the codemp client using new traits 2023-04-17 14:56:25 +02:00
eafbc41bd1 chore: split op factory into processor and factory 2023-04-17 14:56:00 +02:00
75e397854b chore!: initial work on refactoring client+factory 2023-04-16 03:24:18 +02:00
44d0b3594c fix: more precise callbacks, catch errors in cbs 2023-04-13 03:23:57 +02:00
a8d0cb0666 fix: don't send noops 2023-04-13 03:23:44 +02:00
eeb72545c6 feat: async opseq queuing and transforming 2023-04-13 02:19:31 +02:00
56db49746d chore: commented out unused stuff for now 2023-04-13 00:54:37 +02:00
07b8e3a517 fix: friendlier conn addr and logging 2023-04-13 00:54:01 +02:00
ftbsc
f7cba63456 feat: allow setting remote debug via vim global 2023-04-12 18:12:50 +02:00
ftbsc
1a0c649845 feat: allow tls 2023-04-12 18:12:38 +02:00
ftbsc
7ae5329ce5 feat: added whole content diff to opseq 2023-04-12 16:58:28 +02:00
ftbsc
0f5e4c7f8d chore: small style tweaks 2023-04-12 16:58:00 +02:00
c3d7889e23 fix: removed some log prints 2023-04-12 05:45:37 +02:00
38bf411d54 fix: comparisons with null, hardcoded path 2023-04-12 05:23:20 +02:00
77eae35bc3 feat: allow to request remote tracing via socket 2023-04-12 05:00:37 +02:00
a872c39d7f fix: properly print logs in nvim 2023-04-12 05:00:18 +02:00