2a016a6619
fix: add .content() back
...
except now its async and can fail and basically requests the worker to
generate the content for us on demand
Co-authored-by: zaaarf <me@zaaarf.foo>
Co-authored-by: cschen <cschen@codemp.dev>
2024-08-13 18:03:20 +02:00
cschen
9acb7b6007
wip: Some attempts at getting DT to work with buffer controller and buffer worker!
...
This attempt doesn't use a ref to the crdt! But uses an extra channel!
2024-08-13 00:36:09 +02:00
781a130c62
chore: moved tools into ext
2024-08-10 16:13:16 +02:00
61be0009ba
fix: removed InternallyMutable::wait
...
its broken in weird ways, just dont use it that way
2024-08-09 00:40:46 +02:00
0ca5165b73
feat: improve InternallyMutable
2024-08-08 21:55:52 +02:00
59d8a4640d
fix: proper lifetime for cursor, renamed methods
...
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 02:29:45 +02:00
6e9727128d
feat: controllers now implement stop
...
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:28:15 +02:00
cd8f7cd5c5
feat: internally mutable
...
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:27:24 +02:00
ffa8d8ea82
Updated Javascript Glue with Napi
...
Co-authored-by: alemi.dev <me@alemi.dev>
2024-08-07 23:06:33 +02:00
6212718e99
feat: recv, buffer_list, tweaks, gradle
2024-08-07 10:22:01 +02:00
05a4c88967
fix: controller with 1 generic
2024-08-06 23:00:45 +02:00
Camillo Schenone
f9784e961d
feat: updated to new glue, magic.
...
fix: added sublime junk to gitignore
2024-08-05 22:44:46 +02:00
39533ae086
feat: wrappers for Cursor and Op
...
so plugins dont need to interact directly with our underlying proto
struct, nor our underlying crdt ops. also for wrapping directly in glue
2024-08-05 19:15:30 +02:00
84c77eaca3
feat: inner Arc<T> on controllers
...
so we can wrap them directly in our glue
2024-08-05 19:14:35 +02:00
a38c28f401
feat: moved out proto + feature flag cleanup
...
Co-authored-by: alemi <me@alemi.dev>
2024-03-09 19:59:36 +01:00
c9a36ea8ec
fix: cleaned up code, fixed multi-op change issues
2024-02-09 00:35:08 +01:00
1cf17dc151
chore: proto cleanup and simplification
...
reuse as much as possible, keep rpc messages close with their rpc,
helper struct for uuid with into() and from(). also replaced the simple
things, such as imports and struct fields
2024-02-07 01:09:28 +01:00
4ae31df3ff
chore: moved select_buffer under buffer::tools
...
needed to more appropriately subdivide feature flags
2024-02-01 17:54:56 +01:00
741a074464
feat: implemented leave workspace and list buffer users, various fixes
2024-01-25 17:05:06 +01:00
94a7786812
feat: workspaces and new library structure
...
Co-authored-by: alemi <me@alemi.dev>
Co-authored-by: frelodev <frelodev@gmail.com>
2024-01-25 02:13:45 +01:00
7ad1da0f27
chore: updated docs, getter for buf name
2023-11-30 03:41:53 +01:00
9d349e1b1e
fix: remove tracing
2023-11-30 03:08:22 +01:00
3197c083bf
fix: discard empty textchanges, drain range
2023-11-30 03:04:26 +01:00
3881bb38ea
chore: improved seen mechanism
...
instead of manually handling the mutex leave it to tokio and use a fancy
generic struct with update() and check()
2023-11-30 03:03:09 +01:00
1265f716d6
chore: packed clonable handles in sub struct
2023-11-27 14:55:46 +01:00
15ad6dba55
docs: documented select_buffer
2023-11-24 12:12:38 +01:00
488c22c0f1
fix: missing await, debug on ignorableErr, content
2023-11-24 10:43:37 +01:00
8df0b8ec41
feat: poll doesn't ever lock the RwLock
...
to make try_recv deadlocks way more rare
2023-11-23 20:45:43 +01:00
0ba2c5ccef
fix: ouch mutexes are harddddd
2023-11-17 18:38:29 +01:00
152679669b
feat: buffer controller exposes its name
2023-11-17 17:38:47 +01:00
9df4594408
feat: send granular changes, added deadlocked error
2023-11-17 05:47:57 +01:00
39f2bd6ac2
docs: updated usage and references
2023-11-17 05:47:40 +01:00
2ccb5c936b
feat: moved TextChange into api, added from diff
2023-11-17 05:45:31 +01:00
5208ff65c0
fix: don't trigger on self change, smaller siteid
...
also set woot dep rev because cache
2023-11-17 03:30:39 +01:00
ca29ee3e0f
fix: better api with TextChange, ugly fixes
...
it's pretty ugly but it kinda works? really need to do this better
2023-11-16 06:52:25 +01:00
e7ad2723ba
fix: initialize woot with str, gen siteid from uid
2023-11-10 04:29:50 +01:00
8686715e9d
feat: swap in our WOOT implementation
...
it's kinda crude and buggy but some things might just work?
2023-11-09 05:21:24 +01:00
9040222570
docs: fix references
2023-09-10 03:06:47 +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
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