From b821cdc15295f5a37ac058e27f045331d9377779 Mon Sep 17 00:00:00 2001 From: alemi Date: Thu, 3 Oct 2024 03:41:28 +0200 Subject: [PATCH] fix(lua): add Delta object --- src/ffi/lua/buffer.rs | 15 +++++++++++++++ src/ffi/lua/ext/callback.rs | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/src/ffi/lua/buffer.rs b/src/ffi/lua/buffer.rs index 2a46dc6..17d3627 100644 --- a/src/ffi/lua/buffer.rs +++ b/src/ffi/lua/buffer.rs @@ -1,4 +1,6 @@ use crate::prelude::*; +use crate::api::change::{Acknowledgeable, Delta}; +use crate::buffer::controller::BufferAck; use mlua::prelude::*; use mlua_codemp_patch as mlua; @@ -59,3 +61,16 @@ impl LuaUserData for CodempTextChange { methods.add_method("apply", |_, this, (txt,): (String,)| Ok(this.apply(&txt))); } } + +impl LuaUserData for Delta { + fn add_fields>(fields: &mut F) { + fields.add_field_method_get("change", |_, this| Ok(this.change.clone())); + fields.add_field_method_get("ack", |_, this| Ok(this.ack.clone())); + } +} + +impl LuaUserData for BufferAck { + fn add_methods>(methods: &mut M) { + methods.add_method_mut("send", |_, this, ()| Ok(this.send())); + } +} diff --git a/src/ffi/lua/ext/callback.rs b/src/ffi/lua/ext/callback.rs index ce96c31..7deb8a0 100644 --- a/src/ffi/lua/ext/callback.rs +++ b/src/ffi/lua/ext/callback.rs @@ -1,5 +1,7 @@ use crate::ext::IgnorableError; use crate::prelude::*; +use crate::api::change::Delta; +use crate::buffer::controller::BufferAck; use mlua::prelude::*; use mlua_codemp_patch as mlua; @@ -111,4 +113,6 @@ callback_args! { MaybeCursor: Option, TextChange: CodempTextChange, MaybeTextChange: Option, + Delta: Delta, + MaybeDelta: Option>, }