Commit graph

167 commits

Author SHA1 Message Date
00e29ee975 new features: leave workspace and disconnect from buffer (just rs bindings) 2023-10-02 23:35:19 +02:00
35c48a205f New features: sending buffer events 2023-10-01 10:56:19 +02:00
cf99be0059 New features: receiving buffer events 2023-10-01 10:55:27 +02:00
3f56943f01 New features: attaching to buffers 2023-10-01 10:54:08 +02:00
ed859f0630 New features: creating buffers 2023-10-01 10:51:28 +02:00
9e2d372e5e New features: receiving and sending cursor events 2023-10-01 10:47:53 +02:00
62eb461d67 changed how to build 2023-09-14 23:58:14 +02:00
9b281b1b4c merged in a single folder, rust bindings napi + vscode extension 2023-09-14 23:22:19 +02:00
9929aa753a Finished implementing core API
Co-authored-by: alemi <me@alemi.dev>
2023-08-20 00:48:35 +02:00
7f9422103a feat: switched from neon to napi
Co-authored-by: alemi <me@alemi.dev>
2023-08-19 18:43:22 +02:00
ed01ecfb5f fix: codemp dependency, reverted some changes
basically lock it to lib version 0.3
2023-08-17 00:15:34 +02:00
27048efac9 chore: removed rest of the project: 2023-08-16 23:29:45 +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
2fde9659db feat: parse CLI args in server too 2023-04-12 04:59:33 +02:00
a52f74d092 fix: move cursor in insert, error if not connected 2023-04-12 04:21:02 +02:00
8ca5128ca9 feat: very crude cursor implementation 2023-04-12 03:29:42 +02:00
e471a6dbc9 chore: return nil 2023-04-12 01:38:47 +02:00
55c4ddb93a feat: improved Lua API for plugin
added commands to connect/disconnect, jobid is kept internally, commands
to hook/unhook callbacks, refactored stuff a little
2023-04-12 01:38:38 +02:00
c1b7073e89 fix: better error handling 2023-04-12 00:33:14 +02:00
dd0acdad2f fix: map errors 2023-04-12 00:32:56 +02:00
3827ab066d fix: one factory per buffer, create on attach 2023-04-12 00:32:39 +02:00
1eec71f3b2 fix: callbacks local to buffer, local bufnr + path 2023-04-12 00:31:59 +02:00
8e2f41a1c8 chore: made OperationFactory async and mutexless 2023-04-11 22:35:37 +02:00
0a464296cd feat: added Join/Share commands 2023-04-11 22:35:27 +02:00
b891c0d2f0 feat: added sync rpc 2023-04-11 22:35:10 +02:00
228f6a54f0 fix: catch some edge cases 2023-04-11 17:12:22 +02:00
de153c798c fix: retain ending chars 2023-04-11 14:24:53 +02:00
ca4f68c5ec feat: added delete fn, handle CR and BS 2023-04-11 14:24:40 +02:00
532de6639f feat: pass back stderr 2023-04-11 14:02:45 +02:00
f1f65aafdb chore: cleanup nvim main 2023-04-11 14:01:55 +02:00
b12b6dc68f feat: added reference client in lib 2023-04-11 14:01:27 +02:00
2472164350 chore: removed cli client 2023-04-11 14:00:49 +02:00
4f43573aa0 feat: basic nvim RPC client 2023-04-11 06:20:40 +02:00
9bf12b8bc3 feat: add user to msgs, pass msgs directly 2023-04-10 20:24:11 +02:00
14e9a1e86e feat: added Operation Factory struct 2023-04-10 01:41:22 +02:00
ebbca24a99 chore: dramatically simplified everything
working on this was really hard, so i'm making simple things first.
removed almost everything except bare buffer changes, and not even done
in a smart way, but should be a working PoC? now trying to make a
working client to test it out and actually work on a real prototype
2023-04-07 03:10:45 +02:00
5ff2166fa2 chore: warnings be gone 2022-10-18 02:28:16 +02:00
9bbd30a5f8 feat: super barebones synched cursor across clients 2022-10-18 02:22:04 +02:00
60e53b4a94 feat: made them all UUIDs because I hate myself 2022-10-18 02:20:31 +02:00
f596df73c4 chore: moved stuff into a common library 2022-10-18 02:19:15 +02:00
e9500afd55 feat: did some plumbing for events and cursors channels 2022-09-24 01:14:12 +02:00
7f4696f164 feat: initial work on auth interceptors 2022-09-17 21:46:40 +02:00
711c7ce7c6 chore: mark unused variables to suppress warnings 2022-09-08 00:19:01 +02:00
57dc0b25e9 fix: removed useless mut 2022-09-08 00:18:48 +02:00
911ed4e212 chore: added events to modules, added some docs 2022-08-29 02:50:14 +02:00
1f32834572 fix: send buffer events 2022-08-29 02:49:24 +02:00
851781b041 feat: made statemanager more friendly in its usage
basically removed the need to manually compose messages and added
methods to handle it.
2022-08-29 02:48:09 +02:00
824cb62933 chore: moved responsabilites around again 2022-08-28 23:41:11 +02:00
6fd0ab4944 feat: reworked workspace and workspaceview
now there are handy methods that hide the underlying message passing
2022-08-28 23:40:15 +02:00
692c3f4977 fix: some tweaks to make rust-analyzer happy
stuff used to make sense but I changed some things below. Now I need to
redo my plumbing, but I don't want my language server going crazy.
2022-08-28 23:38:45 +02:00
5bb535385b feat: added events struct
there's also quite some commented out code. I first approached the
problem in a OOP way, but that's not the right way for rust. Keeping
that code just to remember my vision.
2022-08-28 23:36:46 +02:00
18d86020c0 fix: add getter to state workspaces, imports fix 2022-08-03 18:51:56 +02:00
e030b9a48f feat: added some getters to state obj, implemented /buffers 2022-08-03 15:09:15 +02:00