c0bc92e812
feat: split tx/rx generic in controller
2024-10-03 00:26:40 +02:00
6afbb23590
fix: leave_workspace returns like detach
2024-10-01 19:03:47 +02:00
fe835c84ff
Merge branch 'dev' into feat/lua-promise-abort
2024-10-01 17:48:09 +02:00
36591a6cda
chore: rename from abort to cancel
...
:await() and :abort() may get mixed up,
:await() and :cancel() are more distinguishable
2024-10-01 16:07:30 +02:00
d21969cb81
feat: add promise abort for lua
2024-10-01 16:07:30 +02:00
400d87cdb1
chore: cargo fmt
2024-10-01 16:07:09 +02:00
3a9fdebbc0
feat: sort filetree before returning it
2024-09-30 20:30:55 +02:00
ddbad59ae2
feat: implemented AsyncReceiver for Workspace...
...
... its very bad tho, very very bad
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-28 03:56:57 +02:00
1b16d4af59
chore: split controller trait in 2 sides
...
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-28 03:33:32 +02:00
52269324cd
chore(js): docs
2024-09-27 23:34:48 +02:00
2b6d2037c7
chore(js): added glue user object
2024-09-27 23:34:07 +02:00
512c2b30ea
chore(js): added glue workspace functions
2024-09-27 23:33:06 +02:00
2daab9ed87
chore(js): added glue detach fn
2024-09-26 09:58:03 +02:00
a89b8a454c
chore(js): added glue buffer list fn
2024-09-26 09:54:56 +02:00
be055c8e05
chore(js): added glue clear callback fn for cursor controller
2024-09-26 09:38:05 +02:00
d733a0e4e2
chore: update glue code to remove .stop()
2024-09-26 02:29:46 +02:00
4d418c814e
fix: use Weak refs to prevent leaky cycles
2024-09-26 02:29:13 +02:00
4191fc2257
fix(js): remove unneded result wraps
2024-09-25 23:00:01 +02:00
297762c0b4
fix(js): wrong argument, also remove Result<>
2024-09-25 22:56:07 +02:00
95f800c762
fix: doctests fail with features enabled, dont run
2024-09-25 22:53:32 +02:00
a756b2805c
feat(java): workspace user list
2024-09-25 17:36:35 +02:00
7d3a7ebef5
fix: add version to lua, fix annotations
...
also snuck in a tiny change for rockspec file
2024-09-25 17:28:52 +02:00
3da0bfd40a
chore(js): added glue for version function
2024-09-25 17:28:52 +02:00
e0ea884b53
chore(java): added glue for version method
2024-09-25 17:28:52 +02:00
cschen
0ffcef360b
add python glue
2024-09-25 17:28:52 +02:00
cschen
37347311fb
changes the position of the function to the lib folder and simplify it.
2024-09-25 17:28:52 +02:00
cschen
80219f2cce
feat: add version function to the client.
2024-09-25 17:28:52 +02:00
eb3d31b8ff
fix: add Workspace::event to js api
2024-09-25 17:13:20 +02:00
d31b3d244a
fix: use async blocks rather than main + async fn
2024-09-25 16:54:54 +02:00
d506d8cc74
fix: add ghost main() function for nightly/beta rust doctests
2024-09-25 16:42:09 +02:00
f41f2c2f9c
fix: mark tests as no_run: they require net access
2024-09-25 05:46:48 +02:00
3f2f98a9f2
Merge pull request #18 from hexedtech/feat/jni-toolbox
...
feat: use jni-toolbox for glue
2024-09-25 00:56:37 +02:00
21cf2a6445
Merge pull request #16 from hexedtech/feat/userlist
...
feat: add user_list, allow config::new with &str
2024-09-24 20:36:19 +02:00
9d1b919b31
Revert "chore: draft of user_list for java but its broken"
...
This reverts commit ba1a53c3a9
.
2024-09-24 19:57:03 +02:00
0095511cc7
fix: &mut object references
...
it just works?? maybe it did all the time...
2024-09-24 03:35:42 +02:00
678f8bd9ea
chore: updated jni-toolbox usage
2024-09-23 18:12:13 +02:00
1d0d87d521
feat(java): converted remaining glue to toolbox
2024-09-23 00:26:11 +02:00
cschen
221a46dc16
Merge pull request #15 from hexedtech/docs/tests
2024-09-22 16:16:40 +02:00
7056dc341c
feat: add jni-toolbox, convert client
2024-09-22 02:22:51 +02:00
d7c4ef3891
Merge pull request #12 from hexedtech/fix-ci-python
...
New Ci for Windows and no-abi build option for python
2024-09-21 13:27:43 +02:00
ba1a53c3a9
chore: draft of user_list for java but its broken
2024-09-21 13:18:53 +02:00
db77fce3ab
chore: implemented user_list for lua, js, py
2024-09-21 13:18:38 +02:00
2f6557f971
feat: add user_list, allow config::new with &str
2024-09-21 12:05:09 +02:00
69171e73b3
docs: re-enable and fix doc tests
2024-09-21 11:52:46 +02:00
cschen
d60ac63b49
fix(py): fixed the configuration and rearranged a bit. tested. builds and works.
2024-09-20 16:47:22 +02:00
cschen
e67b1c6bd0
feat(py): better configuration constructor.
...
Now it accept only keywords arguments so it support just passing in a dict.
2024-09-20 16:47:12 +02:00
cschen
f6c0b878cb
feat: add specific feature flag to specify building python without abi.
...
This is needed because if we want to ship to sublime, having the `pyo3/abi-*`
feature enabled will result in a wheel that needs the `python3.dll` (f****g windows)
which sublime does not ship. This works fine for Linux and Mac Os, but
for windows we will need to build without abi and for Python3.8 directly
for sublime specifically and also with the abi for the generic python wheel to be
used everywhere else.
2024-09-19 21:32:46 +02:00
5a8b4ae800
chore: bump versions, fix docs
2024-09-18 16:11:12 +02:00
7c92b94a07
fix(java): fixed broken config and textchange conversions
2024-09-18 01:54:20 +02:00
c5ab72280a
fix(lua): dont throw error, return a string
...
while less "correct", dealing with the error in lua is really awful.
also its too late to deal with that error anyway, it was in another
thread
2024-09-18 00:30:46 +02:00
d215b4ab0b
chore(lua): renamed some top level methods
2024-09-17 23:33:37 +02:00
3047d21870
feat(lua): also pass errors in callbacks
2024-09-17 23:27:27 +02:00
27b56cbd03
docs(java): written javadocs, removed unused class
2024-09-17 23:17:09 +02:00
54db029ecc
chore(lua): split down the monofile
2024-09-17 23:00:30 +02:00
864348bef4
fix: dont use color codes in logger
2024-09-17 22:17:47 +02:00
7d53f61f0a
feat(lua): pass logs via callback channel, fix hints
2024-09-17 18:53:52 +02:00
6e63468e48
feat(java): general cleanup and overhaul of glue code
2024-09-17 17:37:22 +02:00
42ae4247ce
feat(lua): reintroduce and_then safely
2024-09-17 14:34:25 +02:00
d87b0923d9
feat(java): poll, stop, activeBuffers, general fixes and improvements
2024-09-17 02:40:18 +02:00
13ef05f8a2
fix(lua): event type field
2024-09-17 02:02:38 +02:00
7df85fb13e
chore: rename Workspace::try_new -> connect
...
more appropriate: we pass a ton of parameters and a new connection is
established. try_new was too generic
2024-09-16 21:11:42 +02:00
7aff141e78
fix(lua): cursor fields must be tuples too
2024-09-16 19:58:52 +02:00
cd1fc21df7
feat(lua): alternative getters, annotations
...
also cleaned up features a bit and updated annotations
oh and run CI too once
2024-09-16 18:24:24 +02:00
5cf6c4d4eb
fix(java): errors in send buffer glue, safer error handling
2024-09-16 02:59:43 +02:00
795423de2a
feat(java): callback API
...
Co-authored-by: alemi <me@alemi.dev>
2024-09-16 00:20:03 +02:00
05fbbe6f9d
feat(java): get_user, active_workspaces
2024-09-15 02:00:04 +02:00
963f2b698c
feat(java): callback API, buffer send
...
Co-authored-by: alemi <me@alemi.dev>
2024-09-15 01:56:51 +02:00
a59d2c4648
fix: feature name, disable workflow
2024-09-14 18:54:32 +02:00
cschen
c1ed0d45f3
feat(python): add config support to python with a getter/setter approach
2024-09-14 00:17:46 +02:00
5701a0c49e
chore: merge branch 'config'
2024-09-13 22:57:53 +02:00
97c57a81d6
docs: moved around documentation
...
on building and using
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-13 22:56:00 +02:00
ac94fb86fd
chore: rename feature to py for consistency
2024-09-13 22:21:53 +02:00
92d181246e
feat: strict filetree()
2024-09-13 20:02:42 +02:00
c0b8906043
chore: move ffi infos in root mod
...
because i actually dont want docs.rs to build with ffi flags anymore:
docs get "littered" with napi auto methods and pyo3 stuff, which is
annoying and needless noise when reading the doc. I would much rather
only have relevant stuff, to not make doc consumers hop around guessing
what is relevant and what not
2024-09-13 12:04:27 +02:00
2f68006d07
fix: glue for js and py
2024-09-11 18:07:55 +02:00
422566a145
fix: proto code was mixing different ideas
2024-09-11 17:50:40 +02:00
314b163b05
fix: more verbose error strings
2024-09-11 17:50:05 +02:00
981e7218b5
fix(lua): actually still need userdata
...
what's up with weird userdata NULL ?? lets actually get serialized but
return userdata so we get best of all worlds. in the future we could
make overloads with multiple args which bypass serialization
2024-09-11 17:49:09 +02:00
6559fcd5f3
feat(java): use config struct for connect
2024-09-11 15:51:07 +02:00
123f11854c
fix(lua): normalize workspace method names
...
no _buffer
2024-09-11 15:50:05 +02:00
5e95ddde2a
feat(lua): add config, serialize/deserialize args
...
before we held all structs on the rust side, which probably means faster
passing and smaller objects but also very inconvenient because must be
constructed on the rust side. all api structs are now serialized back
and forth, which should become fast enough if jitted, allows for simpler
and smaller code and all around probably is a negligible overhead since
we were creating lua function tables and functions every time anyway.
could actually be faster to just serialize simple primitives rather than
creating a function to get it? idk lua api changed too btw
2024-09-11 15:46:05 +02:00
e91a504588
feat: add serialize feature for api structs
2024-09-11 15:45:35 +02:00
d57fb2c4b6
feat: added codemp config, changed connect methods
2024-09-11 15:12:31 +02:00
ba566439d3
docs: add favicon
2024-09-11 15:04:34 +02:00
65721f3e6a
feat(lua): allow loading with many more names
...
codemp, libcodemp, codemp_native, codemp_lua all work now
2024-09-10 12:29:11 +02:00
e05e273ee2
fix(lua): use patched crate by us, add features
...
basically upstream lua pushed a change making `send` and `module`
features incompatible, which is not ok for us as we need the LuaFunction
to be sync to send it on the channel. Also added features for all lua
versions, it's a bit messy on the Cargo.toml but now we support really
all lua versions and can probably publish on luarocks
2024-09-10 12:12:59 +02:00
f6ee2f0806
fix(java): borked glue methods
2024-09-09 16:06:05 +02:00
cschen
f2a2892674
fix(python): fix macros also for client.rs
2024-09-08 11:25:33 +02:00
cschen
f116f27b39
fix(python): remove the macro_export and use pub(crate) instead so that it doesn't leak into the documentations.
2024-09-08 11:03:10 +02:00
b968945a37
chore: codemp.dev -> code.mp
2024-09-07 22:10:47 +02:00
cschen
c1c9902b45
feat(python): switched to abi3 mode to allow multiple python versions with single wheel.
...
abi3 does not support `PyFunction` so added workaround checking for `is_callable()`
2024-09-06 00:24:37 +02:00
fb5bb51e65
fix: uuid was copy, string is not
2024-09-06 00:12:31 +02:00
917a6b96c2
feat: automatically map cursor uuids to names
...
not a fan of passing an Arc<DashMap> down to the cursor worker, but it
needs to access a mapping managed by the workspace so not sure if it can
be better. Into and From protocol types and Cursor are gone: do things
manually (since user is now a different thing, it can't be auto). Also
api::Cursor got changed: user field is Option<String> now
2024-09-05 23:59:05 +02:00
04e021f964
feat: don't use async-trait for api::Controller
...
make it still available via feature `async-trait` if it is necessary to
use auto traits downstream, however documentation should now be more
readable
2024-09-05 23:27:57 +02:00
b8376a5ef8
fix: moved import, exclude dist from packaging
2024-09-05 03:28:46 +02:00
1fac27ebd5
fix(lua): use last published beta rather than git
2024-09-05 03:18:06 +02:00
2b47f2a1d6
docs: add docs.rs logo
2024-09-05 03:06:36 +02:00
cd8b0c64f4
chore(java): new error system
2024-09-05 02:45:33 +02:00
921a8ee69a
fix: updated js and py glues with new errors
2024-09-05 02:33:35 +02:00
d25e744a37
docs: improved cargo docs, rewrote readme
...
Co-authored-by: alemi <me@alemi.dev>
2024-09-05 01:45:48 +02:00
bfe84c45e0
docs: re-documented remaining members
2024-09-04 21:37:35 +02:00
f0a6a6b730
docs: remade docstricts, refactored a bit
...
refactor shouldn't impact external apis and mostly just moves stuff
around to make sense documentation-wise
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-04 20:03:34 +02:00
75a8a3bc92
fix: re-export
2024-09-04 17:22:52 +02:00
e822fad74e
chore: renamed and fixed errors
...
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-04 17:20:59 +02:00
8296b473bb
feat(lua): introduce callbacks channel
...
this means that lua must poll but at least they run on main thread and
dont segfault the main process
2024-09-01 03:13:03 +02:00
e50703fc77
chore(lua): module at the bottom
2024-09-01 03:11:43 +02:00
89dbc89225
feat(lua): allow printing tracing on stderr
...
for detached sessions
2024-09-01 03:10:40 +02:00
840da7bf5a
fix(lua): new errors
2024-09-01 03:09:35 +02:00
cf1e910dcb
feat: reworked cursor worker/controller
...
now its more similar to buffer controller/worker and it behaves more
like an actor/service
2024-09-01 03:08:43 +02:00
b98be22a8b
feat: more capillar errors
...
so its clear that some functions wont return a transport error or an rpc
error
2024-09-01 02:46:03 +02:00
cschen
0b1a542ed5
fix: we clip the change span in from 0 to the buffer length, this avoids that
...
badly formatted changes will crash the worker.
Previously I was able to crash the worker by sending oob changes.
chore: improved text change docs a lil bit
2024-09-02 11:31:36 +02:00
cschen
d0d57f6fd5
fix: whops, (I don't know why this bug is still here)
2024-09-01 15:49:54 +02:00
cschen
487a490887
fix(python): changed entry point. separated logger from driver.
2024-08-31 15:23:38 +02:00
cfab8ee148
fix(js): default url
2024-08-27 23:09:36 +02:00
6b7324d37f
feat: added new methods to java, js and py glues
2024-08-27 23:04:56 +02:00
e1da62f0c8
feat(lua): type annotations
2024-08-27 21:24:05 +02:00
30f692e6e1
feat(lua): new session methods
2024-08-27 21:24:05 +02:00
fea7cfcbe1
feat: added session, reworked auth
2024-08-27 21:24:04 +02:00
4a701818f2
feat(js): new glue hash function
2024-08-27 16:09:44 +02:00
fc9247c5a8
chore(js): updated callback functions names
2024-08-27 16:08:25 +02:00
6ea5a72b0c
feat(js): Changed callbacks method to return Controller instead of Change
2024-08-24 17:46:05 +02:00
cschen
076128e1db
chore(python): added name to buffer controller, small cleanup
2024-08-23 20:41:07 +02:00
cschen
88f4ace04a
Merge remote-tracking branch 'origin/dev' into dev
2024-08-22 16:55:28 +02:00
cschen
0c9ea08d64
wip(python): try_recv doesn't return a promise.
2024-08-22 16:52:29 +02:00
cschen
472c33f734
feat(python): added callback support, reaching feature parity with the lib.
2024-08-22 15:22:51 +02:00
21f1948f04
fix(java): new filetree, mistake in create_buffer
2024-08-21 23:41:22 +02:00
cschen
4004f2011f
Merge branch 'pyo3_bump' into dev
2024-08-21 18:21:48 +02:00
cschen
76f8058186
chore(python): final cleanup before merge into dev
2024-08-21 18:15:19 +02:00
ed3673b92a
feat: buffer get name fn
2024-08-21 17:38:33 +02:00
cschen
dc7ae20b7d
fix(python): release GIL when spawning stuff, we don't need to keep it and we risk
...
deadlocking
feat(python): added allow_thread in the macro
2024-08-21 17:20:12 +02:00
f29ea23c4e
feat: new fn for controllers
2024-08-21 17:14:19 +02:00
cschen
fe2f2a3ae0
chore(python): cleaned up the leftovers
2024-08-21 15:45:24 +02:00
cschen
c0e090fe7a
Merge branch 'dev' into pyo3_bump
2024-08-21 15:05:17 +02:00
cschen
e7272753e6
Merge branch 'dev' into pyo3_bump
2024-08-21 15:03:10 +02:00
cschen
a4eb58cd4b
wip(python): moving the rest of the glue to promises (empty promises)
2024-08-21 15:02:44 +02:00
a99eee170d
feat: allow filtering workspace filetree
2024-08-21 14:57:07 +02:00
cschen
4a575c587f
feat(python): fixed macro and expanded to workplace methods
2024-08-20 22:18:29 +02:00
cschen
feff54bcdf
feat(python): switched to a "Promise" approach
...
chore(python): removed, commented out some of the earlier attempts
feat(python): reworked the logger and tokio runtime approach, now the logging
callback drives the runtime.
2024-08-20 21:09:10 +02:00
cschen
72896d87d6
feat(python): tentative of Promise based approach
2024-08-20 17:16:36 +02:00
cschen
b09c7a2206
ON_HOLD: pyo3 experimental async is still too experimental, pivoting to blocking behaviour for now.
2024-08-20 11:22:45 +02:00
3b45c4ddb6
feat(java): UUID-based users, fixed event api
2024-08-19 11:36:51 +02:00
cschen
a45db74722
feat(python): use a current_thread executor
2024-08-18 19:06:07 +02:00
cschen
76e5320e6a
chore(python): minor changes
2024-08-17 23:48:02 +02:00
cschen
f743fbcb03
feat: brought back the manual workspace implementation
2024-08-17 23:47:06 +02:00
cschen
07f656cbe5
feat(python): finish wrapping the new glue in the new pyo3 stuff
2024-08-17 01:13:07 +02:00
cschen
3fe6d224e3
feat(python): summon black magic to allow possible release of the GIL between .awaits
...
plus nice static runtime singleton fetcher/instantiator
2024-08-17 01:12:35 +02:00
cschen
5acca5ce3e
feat: make the automatic User translation into py,
...
fix: properly create the module with the new version signature
2024-08-17 01:11:11 +02:00
cschen
f8c36be6ea
feat: updated workspace manually anyway even if commented so that we have it ready just in case
2024-08-17 01:09:29 +02:00
0154e5a032
fix: try_recv() channel error : delta may be None
...
basically if there was no change to report, the oneshot would not get
updated which is bad. so we put back the version we got and send a None
(the channel now has nullable TextChange). so basically its always a
try_recv, but its fine since recv is implemented with try_recv + poll
anyway
2024-08-17 00:17:01 +02:00
fdcfc611b1
feat(lua): hand rolled a_sync! to the rescue
2024-08-17 00:06:57 +02:00