diff --git a/src/server/hot_reload.rs b/src/server/hot_reload.rs index 91c624047..ae8d67e08 100644 --- a/src/server/hot_reload.rs +++ b/src/server/hot_reload.rs @@ -114,7 +114,13 @@ pub async fn hot_reload_handler( *first = first.split_at(start.column).1; } if let Some(last) = lines.last_mut() { - *last = last.split_at(end.column).0; + // if there is only one line the start index of last line will be the start of the rsx!, not the start of the line + if start.line == end.line { + *last = + last.split_at(end.column - start.column).0; + } else { + *last = last.split_at(end.column).0; + } } let rsx = lines.join("\n"); messages.push(SetRsxMessage { diff --git a/src/server/mod.rs b/src/server/mod.rs index b01a302de..8acf17848 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -144,7 +144,13 @@ pub async fn startup_hot_reload(port: u16, config: CrateConfig) -> Result<()> { *first = first.split_at(start.column).1; } if let Some(last) = lines.last_mut() { - *last = last.split_at(end.column).0; + // if there is only one line the start index of last line will be the start of the rsx!, not the start of the line + if start.line == end.line { + *last = + last.split_at(end.column - start.column).0; + } else { + *last = last.split_at(end.column).0; + } } let rsx = lines.join("\n"); messages.push(SetRsxMessage {