mirror of
https://github.com/hexedtech/codemp.git
synced 2024-11-21 23:04:49 +01:00
chore: update glues
This commit is contained in:
parent
a9d17bf630
commit
14e10e1f7b
8 changed files with 67 additions and 67 deletions
|
@ -20,8 +20,8 @@ fn get_user(client: &mut Client) -> crate::api::User {
|
||||||
|
|
||||||
/// Join a [Workspace] and return a pointer to it.
|
/// Join a [Workspace] and return a pointer to it.
|
||||||
#[jni(package = "mp.code", class = "Client")]
|
#[jni(package = "mp.code", class = "Client")]
|
||||||
fn join_workspace(client: &mut Client, workspace: String) -> Result<Workspace, ConnectionError> {
|
fn attach_workspace(client: &mut Client, workspace: String) -> Result<Workspace, ConnectionError> {
|
||||||
super::tokio().block_on(client.join_workspace(workspace))
|
super::tokio().block_on(client.attach_workspace(workspace))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a workspace on server, if allowed to.
|
/// Create a workspace on server, if allowed to.
|
||||||
|
|
|
@ -22,7 +22,7 @@ fn get_cursor(workspace: &mut Workspace) -> crate::cursor::Controller {
|
||||||
/// Get a buffer controller by name and returns a pointer to it.
|
/// Get a buffer controller by name and returns a pointer to it.
|
||||||
#[jni(package = "mp.code", class = "Workspace")]
|
#[jni(package = "mp.code", class = "Workspace")]
|
||||||
fn get_buffer(workspace: &mut Workspace, path: String) -> Option<crate::buffer::Controller> {
|
fn get_buffer(workspace: &mut Workspace, path: String) -> Option<crate::buffer::Controller> {
|
||||||
workspace.buffer_by_name(&path)
|
workspace.get_buffer(&path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the filetree.
|
/// Get the filetree.
|
||||||
|
@ -34,7 +34,7 @@ fn get_file_tree(workspace: &mut Workspace, filter: Option<String>, strict: bool
|
||||||
/// Gets a list of the active buffers.
|
/// Gets a list of the active buffers.
|
||||||
#[jni(package = "mp.code", class = "Workspace")]
|
#[jni(package = "mp.code", class = "Workspace")]
|
||||||
fn active_buffers(workspace: &mut Workspace) -> Vec<String> {
|
fn active_buffers(workspace: &mut Workspace) -> Vec<String> {
|
||||||
workspace.buffer_list()
|
workspace.active_buffers()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Gets a list of the active buffers.
|
/// Gets a list of the active buffers.
|
||||||
|
@ -46,7 +46,7 @@ fn user_list(workspace: &mut Workspace) -> Vec<String> {
|
||||||
/// Create a new buffer.
|
/// Create a new buffer.
|
||||||
#[jni(package = "mp.code", class = "Workspace")]
|
#[jni(package = "mp.code", class = "Workspace")]
|
||||||
fn create_buffer(workspace: &mut Workspace, path: String) -> Result<(), RemoteError> {
|
fn create_buffer(workspace: &mut Workspace, path: String) -> Result<(), RemoteError> {
|
||||||
super::tokio().block_on(workspace.create(&path))
|
super::tokio().block_on(workspace.create_buffer(&path))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Attach to a buffer and return a pointer to its [crate::buffer::Controller].
|
/// Attach to a buffer and return a pointer to its [crate::buffer::Controller].
|
||||||
|
@ -55,13 +55,13 @@ fn attach_to_buffer(
|
||||||
workspace: &mut Workspace,
|
workspace: &mut Workspace,
|
||||||
path: String,
|
path: String,
|
||||||
) -> Result<crate::buffer::Controller, ConnectionError> {
|
) -> Result<crate::buffer::Controller, ConnectionError> {
|
||||||
super::tokio().block_on(workspace.attach(&path))
|
super::tokio().block_on(workspace.attach_buffer(&path))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Detach from a buffer.
|
/// Detach from a buffer.
|
||||||
#[jni(package = "mp.code", class = "Workspace")]
|
#[jni(package = "mp.code", class = "Workspace")]
|
||||||
fn detach_from_buffer(workspace: &mut Workspace, path: String) -> bool {
|
fn detach_buffer(workspace: &mut Workspace, path: String) -> bool {
|
||||||
workspace.detach(&path)
|
workspace.detach_buffer(&path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Update the local buffer list.
|
/// Update the local buffer list.
|
||||||
|
@ -88,7 +88,7 @@ fn list_buffer_users(
|
||||||
/// Delete a buffer.
|
/// Delete a buffer.
|
||||||
#[jni(package = "mp.code", class = "Workspace")]
|
#[jni(package = "mp.code", class = "Workspace")]
|
||||||
fn delete_buffer(workspace: &mut Workspace, path: String) -> Result<(), RemoteError> {
|
fn delete_buffer(workspace: &mut Workspace, path: String) -> Result<(), RemoteError> {
|
||||||
super::tokio().block_on(workspace.delete(&path))
|
super::tokio().block_on(workspace.delete_buffer(&path))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Block and receive a workspace event.
|
/// Block and receive a workspace event.
|
||||||
|
|
|
@ -66,10 +66,10 @@ impl Client {
|
||||||
Ok(self.invite_to_workspace(workspace, user).await?)
|
Ok(self.invite_to_workspace(workspace, user).await?)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[napi(js_name = "join_workspace")]
|
#[napi(js_name = "attach_workspace")]
|
||||||
/// join workspace with given id (will start its cursor controller)
|
/// join workspace with given id (will start its cursor controller)
|
||||||
pub async fn js_join_workspace(&self, workspace: String) -> napi::Result<Workspace> {
|
pub async fn js_attach_workspace(&self, workspace: String) -> napi::Result<Workspace> {
|
||||||
Ok(self.join_workspace(workspace).await?)
|
Ok(self.attach_workspace(workspace).await?)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[napi(js_name = "leave_workspace")]
|
#[napi(js_name = "leave_workspace")]
|
||||||
|
|
|
@ -54,9 +54,9 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// List all currently active buffers
|
/// List all currently active buffers
|
||||||
#[napi(js_name = "buffer_list")]
|
#[napi(js_name = "active_buffers")]
|
||||||
pub fn js_buffer_list(&self) -> Vec<String> {
|
pub fn js_active_buffers(&self) -> Vec<String> {
|
||||||
self.buffer_list()
|
self.active_buffers()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get workspace's Cursor Controller
|
/// Get workspace's Cursor Controller
|
||||||
|
@ -66,27 +66,27 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a buffer controller by its name (path)
|
/// Get a buffer controller by its name (path)
|
||||||
#[napi(js_name = "buffer_by_name")]
|
#[napi(js_name = "get_buffer")]
|
||||||
pub fn js_buffer_by_name(&self, path: String) -> Option<BufferController> {
|
pub fn js_get_buffer(&self, path: String) -> Option<BufferController> {
|
||||||
self.buffer_by_name(&path)
|
self.get_buffer(&path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a new buffer in the current workspace
|
/// Create a new buffer in the current workspace
|
||||||
#[napi(js_name = "create")]
|
#[napi(js_name = "create_buffer")]
|
||||||
pub async fn js_create(&self, path: String) -> napi::Result<()> {
|
pub async fn js_create_buffer(&self, path: String) -> napi::Result<()> {
|
||||||
Ok(self.create(&path).await?)
|
Ok(self.create_buffer(&path).await?)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Attach to a workspace buffer, starting a BufferController
|
/// Attach to a workspace buffer, starting a BufferController
|
||||||
#[napi(js_name = "attach")]
|
#[napi(js_name = "attach_buffer")]
|
||||||
pub async fn js_attach(&self, path: String) -> napi::Result<BufferController> {
|
pub async fn js_attach_buffer(&self, path: String) -> napi::Result<BufferController> {
|
||||||
Ok(self.attach(&path).await?)
|
Ok(self.attach_buffer(&path).await?)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Delete a buffer from workspace
|
/// Delete a buffer from workspace
|
||||||
#[napi(js_name = "delete")]
|
#[napi(js_name = "delete_buffer")]
|
||||||
pub async fn js_delete(&self, path: String) -> napi::Result<()> {
|
pub async fn js_delete_buffer(&self, path: String) -> napi::Result<()> {
|
||||||
Ok(self.delete(&path).await?)
|
Ok(self.delete_buffer(&path).await?)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[napi(js_name = "recv")]
|
#[napi(js_name = "recv")]
|
||||||
|
@ -128,9 +128,9 @@ impl Workspace {
|
||||||
/// Detach from an active buffer, stopping its underlying worker
|
/// Detach from an active buffer, stopping its underlying worker
|
||||||
/// this method returns true if no reference or last reference was held, false if there are still
|
/// this method returns true if no reference or last reference was held, false if there are still
|
||||||
/// dangling references to clear
|
/// dangling references to clear
|
||||||
#[napi(js_name = "detach")]
|
#[napi(js_name = "detach_buffer")]
|
||||||
pub async fn js_detach(&self, path: String) -> bool {
|
pub async fn js_detach_buffer(&self, path: String) -> bool {
|
||||||
self.detach(&path)
|
self.detach_buffer(&path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Re-fetch remote buffer list
|
/// Re-fetch remote buffer list
|
||||||
|
|
|
@ -7,9 +7,6 @@ use super::ext::from_lua_serde;
|
||||||
|
|
||||||
impl LuaUserData for CodempClient {
|
impl LuaUserData for CodempClient {
|
||||||
fn add_fields<F: LuaUserDataFields<Self>>(fields: &mut F) {
|
fn add_fields<F: LuaUserDataFields<Self>>(fields: &mut F) {
|
||||||
fields.add_field_method_get("id", |_, this| Ok(this.user().id.to_string()));
|
|
||||||
fields.add_field_method_get("username", |_, this| Ok(this.user().name.clone()));
|
|
||||||
fields.add_field_method_get("active_workspaces", |_, this| Ok(this.active_workspaces()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_methods<M: LuaUserDataMethods<Self>>(methods: &mut M) {
|
fn add_methods<M: LuaUserDataMethods<Self>>(methods: &mut M) {
|
||||||
|
@ -17,14 +14,18 @@ impl LuaUserData for CodempClient {
|
||||||
Ok(format!("{:?}", this))
|
Ok(format!("{:?}", this))
|
||||||
});
|
});
|
||||||
|
|
||||||
|
fields.add_method("user", |_, this| Ok(this.user().id.to_string()));
|
||||||
|
fields.add_method("username", |_, this| Ok(this.my_user().name.clone()));
|
||||||
|
fields.add_method("active_workspaces", |_, this| Ok(this.active_workspaces()));
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
"refresh",
|
"refresh",
|
||||||
|_, this, ()| a_sync! { this => this.refresh().await? },
|
|_, this, ()| a_sync! { this => this.refresh().await? },
|
||||||
);
|
);
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
"join_workspace",
|
"attach_workspace",
|
||||||
|_, this, (ws,): (String,)| a_sync! { this => this.join_workspace(ws).await? },
|
|_, this, (ws,): (String,)| a_sync! { this => this.attach_workspace(ws).await? },
|
||||||
);
|
);
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
|
|
|
@ -3,7 +3,6 @@ use mlua::prelude::*;
|
||||||
use mlua_codemp_patch as mlua;
|
use mlua_codemp_patch as mlua;
|
||||||
|
|
||||||
use super::ext::a_sync::a_sync;
|
use super::ext::a_sync::a_sync;
|
||||||
use super::ext::from_lua_serde;
|
|
||||||
|
|
||||||
impl LuaUserData for CodempWorkspace {
|
impl LuaUserData for CodempWorkspace {
|
||||||
fn add_methods<M: LuaUserDataMethods<Self>>(methods: &mut M) {
|
fn add_methods<M: LuaUserDataMethods<Self>>(methods: &mut M) {
|
||||||
|
@ -11,26 +10,26 @@ impl LuaUserData for CodempWorkspace {
|
||||||
Ok(format!("{:?}", this))
|
Ok(format!("{:?}", this))
|
||||||
});
|
});
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
"create",
|
"create_buffer",
|
||||||
|_, this, (name,): (String,)| a_sync! { this => this.create(&name).await? },
|
|_, this, (name,): (String,)| a_sync! { this => this.create_buffer(&name).await? },
|
||||||
);
|
);
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
"attach",
|
"attach_buffer",
|
||||||
|_, this, (name,): (String,)| a_sync! { this => this.attach(&name).await? },
|
|_, this, (name,): (String,)| a_sync! { this => this.attach_buffer(&name).await? },
|
||||||
);
|
);
|
||||||
|
|
||||||
methods.add_method("detach", |_, this, (name,): (String,)| {
|
methods.add_method("detach_buffer", |_, this, (name,): (String,)| {
|
||||||
Ok(this.detach(&name))
|
Ok(this.detach_buffer(&name))
|
||||||
});
|
});
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
"delete",
|
"delete_buffer",
|
||||||
|_, this, (name,): (String,)| a_sync! { this => this.delete(&name).await? },
|
|_, this, (name,): (String,)| a_sync! { this => this.delete_buffer(&name).await? },
|
||||||
);
|
);
|
||||||
|
|
||||||
methods.add_method("get_buffer", |_, this, (name,): (String,)| {
|
methods.add_method("get_buffer", |_, this, (name,): (String,)| {
|
||||||
Ok(this.buffer_by_name(&name))
|
Ok(this.get_buffer(&name))
|
||||||
});
|
});
|
||||||
|
|
||||||
methods.add_method(
|
methods.add_method(
|
||||||
|
@ -49,6 +48,9 @@ impl LuaUserData for CodempWorkspace {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fields.add_method("id", |_, this, ()| Ok(this.id()));
|
||||||
|
fields.add_method("cursor", |_, this, ()| Ok(this.cursor()));
|
||||||
|
fields.add_method("active_buffers", |_, this, ()| Ok(this.active_buffers()));
|
||||||
methods.add_method("user_list", |_, this, ()| Ok(this.user_list()));
|
methods.add_method("user_list", |_, this, ()| Ok(this.user_list()));
|
||||||
|
|
||||||
methods.add_method("recv", |_, this, ()| a_sync! { this => this.recv().await? });
|
methods.add_method("recv", |_, this, ()| a_sync! { this => this.recv().await? });
|
||||||
|
@ -70,9 +72,6 @@ impl LuaUserData for CodempWorkspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_fields<F: LuaUserDataFields<Self>>(fields: &mut F) {
|
fn add_fields<F: LuaUserDataFields<Self>>(fields: &mut F) {
|
||||||
fields.add_field_method_get("name", |_, this| Ok(this.id()));
|
|
||||||
fields.add_field_method_get("cursor", |_, this| Ok(this.cursor()));
|
|
||||||
fields.add_field_method_get("active_buffers", |_, this| Ok(this.buffer_list()));
|
|
||||||
// fields.add_field_method_get("users", |_, this| Ok(this.0.users())); // TODO
|
// fields.add_field_method_get("users", |_, this| Ok(this.0.users())); // TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,11 +14,11 @@ impl Client {
|
||||||
// super::tokio().block_on(Client::connect(host, username, password))
|
// super::tokio().block_on(Client::connect(host, username, password))
|
||||||
// }
|
// }
|
||||||
|
|
||||||
#[pyo3(name = "join_workspace")]
|
#[pyo3(name = "attach_workspace")]
|
||||||
fn pyjoin_workspace(&self, py: Python<'_>, workspace: String) -> PyResult<super::Promise> {
|
fn pyattach_workspace(&self, py: Python<'_>, workspace: String) -> PyResult<super::Promise> {
|
||||||
tracing::info!("attempting to join the workspace {}", workspace);
|
tracing::info!("attempting to join the workspace {}", workspace);
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
a_sync_allow_threads!(py, this.join_workspace(workspace).await)
|
a_sync_allow_threads!(py, this.attach_workspace(workspace).await)
|
||||||
// let this = self.clone();
|
// let this = self.clone();
|
||||||
// Ok(super::Promise(Some(tokio().spawn(async move {
|
// Ok(super::Promise(Some(tokio().spawn(async move {
|
||||||
// Ok(this
|
// Ok(this
|
||||||
|
@ -84,12 +84,12 @@ impl Client {
|
||||||
|
|
||||||
#[pyo3(name = "user_id")]
|
#[pyo3(name = "user_id")]
|
||||||
fn pyuser_id(&self) -> String {
|
fn pyuser_id(&self) -> String {
|
||||||
self.user().id.to_string()
|
self.my_user().id.to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "user_name")]
|
#[pyo3(name = "user_name")]
|
||||||
fn pyuser_name(&self) -> String {
|
fn pyuser_name(&self) -> String {
|
||||||
self.user().name.clone()
|
self.my_user().name.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "refresh")]
|
#[pyo3(name = "refresh")]
|
||||||
|
|
|
@ -11,20 +11,20 @@ use super::Promise;
|
||||||
#[pymethods]
|
#[pymethods]
|
||||||
impl Workspace {
|
impl Workspace {
|
||||||
// join a workspace
|
// join a workspace
|
||||||
#[pyo3(name = "create")]
|
#[pyo3(name = "create_buffer")]
|
||||||
fn pycreate(&self, py: Python, path: String) -> PyResult<Promise> {
|
fn pycreate_buffer(&self, py: Python, path: String) -> PyResult<Promise> {
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
a_sync_allow_threads!(py, this.create(path.as_str()).await)
|
a_sync_allow_threads!(py, this.create_buffer(path.as_str()).await)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "attach")]
|
#[pyo3(name = "attach_buffer")]
|
||||||
fn pyattach(&self, py: Python, path: String) -> PyResult<Promise> {
|
fn pyattach_buffer(&self, py: Python, path: String) -> PyResult<Promise> {
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
a_sync_allow_threads!(py, this.attach(path.as_str()).await)
|
a_sync_allow_threads!(py, this.attach_buffer(path.as_str()).await)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "detach")]
|
#[pyo3(name = "detach_buffer")]
|
||||||
fn pydetach(&self, path: String) -> bool {
|
fn pydetach_buffer(&self, path: String) -> bool {
|
||||||
self.detach(path.as_str())
|
self.detach(path.as_str())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,10 +47,10 @@ impl Workspace {
|
||||||
a_sync_allow_threads!(py, this.list_buffer_users(path.as_str()).await)
|
a_sync_allow_threads!(py, this.list_buffer_users(path.as_str()).await)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "delete")]
|
#[pyo3(name = "delete_buffer")]
|
||||||
fn pydelete(&self, py: Python, path: String) -> PyResult<Promise> {
|
fn pydelete_buffer(&self, py: Python, path: String) -> PyResult<Promise> {
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
a_sync_allow_threads!(py, this.delete(path.as_str()).await)
|
a_sync_allow_threads!(py, this.delete_buffer(path.as_str()).await)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "id")]
|
#[pyo3(name = "id")]
|
||||||
|
@ -68,9 +68,9 @@ impl Workspace {
|
||||||
self.buffer_by_name(path.as_str())
|
self.buffer_by_name(path.as_str())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "buffer_list")]
|
#[pyo3(name = "active_buffers")]
|
||||||
fn pybuffer_list(&self) -> Vec<String> {
|
fn pyactive_buffers(&self) -> Vec<String> {
|
||||||
self.buffer_list()
|
self.active_buffers()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[pyo3(name = "filetree")]
|
#[pyo3(name = "filetree")]
|
||||||
|
|
Loading…
Reference in a new issue