diff --git a/Cargo.lock b/Cargo.lock index 2388f9d211..37dedc85da 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 c02abcf650..a225726b23 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 50e55b7b1a..a7ba633659 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