diff --git a/Cargo.lock b/Cargo.lock index 2388f9d211d27bcaebced953c09820d462614151..37dedc85dad1e6444f51a85a1c56d2bc1169a62e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11915,6 +11915,8 @@ name = "scripting_tool" version = "0.1.0" dependencies = [ "anyhow", + "buffer_diff", + "clock", "collections", "futures 0.3.31", "gpui", diff --git a/crates/scripting_tool/Cargo.toml b/crates/scripting_tool/Cargo.toml index c02abcf650329ece391eafcb7482acf64bf3763f..a225726b23159099a9da26a3fedc42a7d17d1b54 100644 --- a/crates/scripting_tool/Cargo.toml +++ b/crates/scripting_tool/Cargo.toml @@ -14,6 +14,8 @@ doctest = false [dependencies] anyhow.workspace = true +buffer_diff.workspace = true +clock.workspace = true collections.workspace = true futures.workspace = true gpui.workspace = true @@ -30,6 +32,8 @@ settings.workspace = true util.workspace = true [dev-dependencies] +buffer_diff = { workspace = true, features = ["test-support"] } +clock = { workspace = true, features = ["test-support"] } collections = { workspace = true, features = ["test-support"] } gpui = { workspace = true, features = ["test-support"] } language = { workspace = true, features = ["test-support"] } diff --git a/crates/scripting_tool/src/scripting_session.rs b/crates/scripting_tool/src/scripting_session.rs index 50e55b7b1af4510a5dc82c02bd890b6c9edae1f8..a7ba633659ede33f85d7f7adcd31083cd0b57f0b 100644 --- a/crates/scripting_tool/src/scripting_session.rs +++ b/crates/scripting_tool/src/scripting_session.rs @@ -1,5 +1,6 @@ use anyhow::anyhow; -use collections::HashSet; +use buffer_diff::BufferDiff; +use collections::{HashMap, HashSet}; use futures::{ channel::{mpsc, oneshot}, pin_mut, SinkExt, StreamExt, @@ -18,10 +19,15 @@ use util::{paths::PathMatcher, ResultExt}; struct ForegroundFn(Box, AsyncApp) + Send>); +struct BufferChanges { + diff: Entity, + edit_ids: Vec, +} + pub struct ScriptingSession { project: Entity, scripts: Vec