Detailed changes
@@ -3073,6 +3073,7 @@ dependencies = [
"parking_lot",
"paths",
"plist",
+ "rayon",
"release_channel",
"serde",
"tempfile",
@@ -13890,6 +13891,7 @@ dependencies = [
"pretty_assertions",
"project",
"proto",
+ "rayon",
"release_channel",
"remote",
"reqwest_client",
@@ -32,6 +32,7 @@ release_channel.workspace = true
serde.workspace = true
util.workspace = true
tempfile.workspace = true
+rayon.workspace = true
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
exec.workspace = true
@@ -356,6 +356,12 @@ fn main() -> Result<()> {
"Dev servers were removed in v0.157.x please upgrade to SSH remoting: https://zed.dev/docs/remote-development"
);
+ rayon::ThreadPoolBuilder::new()
+ .num_threads(4)
+ .thread_name(|ix| format!("RayonWorker{}", ix))
+ .build_global()
+ .unwrap();
+
let sender: JoinHandle<anyhow::Result<()>> = thread::Builder::new()
.name("CliReceiver".to_string())
.spawn({
@@ -751,6 +751,7 @@ pub struct DisplaySnapshot {
diagnostics_max_severity: DiagnosticSeverity,
pub(crate) fold_placeholder: FoldPlaceholder,
}
+
impl DisplaySnapshot {
pub fn wrap_snapshot(&self) -> &WrapSnapshot {
&self.block_snapshot.wrap_snapshot
@@ -1408,6 +1409,14 @@ impl DisplaySnapshot {
}
}
+impl std::ops::Deref for DisplaySnapshot {
+ type Target = BlockSnapshot;
+
+ fn deref(&self) -> &Self::Target {
+ &self.block_snapshot
+ }
+}
+
#[derive(Copy, Clone, Default, Eq, Ord, PartialOrd, PartialEq)]
pub struct DisplayPoint(BlockPoint);
@@ -7945,7 +7945,7 @@ impl Editor {
let snapshot = self.snapshot(window, cx);
- let multi_buffer_snapshot = snapshot.display_snapshot.buffer_snapshot();
+ let multi_buffer_snapshot = snapshot.buffer_snapshot();
let Some(project) = self.project() else {
return breakpoint_display_points;
};
@@ -7975,7 +7975,7 @@ impl Editor {
let multi_buffer_anchor =
Anchor::in_buffer(excerpt_id, buffer_snapshot.remote_id(), breakpoint.position);
let position = multi_buffer_anchor
- .to_point(multi_buffer_snapshot)
+ .to_point(&multi_buffer_snapshot)
.to_display_point(&snapshot);
breakpoint_display_points.insert(
@@ -65,6 +65,7 @@ util.workspace = true
watch.workspace = true
worktree.workspace = true
thiserror.workspace = true
+rayon.workspace = true
[target.'cfg(not(windows))'.dependencies]
crashes.workspace = true
@@ -370,6 +370,12 @@ pub fn execute_run(
let listeners = ServerListeners::new(stdin_socket, stdout_socket, stderr_socket)?;
+ rayon::ThreadPoolBuilder::new()
+ .num_threads(4)
+ .thread_name(|ix| format!("RayonWorker{}", ix))
+ .build_global()
+ .unwrap();
+
let (shell_env_loaded_tx, shell_env_loaded_rx) = oneshot::channel();
app.background_executor()
.spawn(async {
@@ -2291,7 +2291,13 @@ impl BufferSnapshot {
insertion_cursor.prev();
}
let insertion = insertion_cursor.item().expect("invalid insertion");
- assert_eq!(insertion.timestamp, anchor.timestamp, "invalid insertion");
+ assert_eq!(
+ insertion.timestamp,
+ anchor.timestamp,
+ "invalid insertion for buffer {} with anchor {:?}",
+ self.remote_id(),
+ anchor
+ );
fragment_cursor.seek_forward(&Some(&insertion.fragment_id), Bias::Left);
let fragment = fragment_cursor.item().unwrap();