Ensure language is set on diffs from `ActionLog` and `AcpThread` (#46129)

Cole Miller created

Release Notes:

- N/A

Change summary

crates/acp_thread/src/diff.rs       | 9 ++++++++-
crates/action_log/src/action_log.rs | 8 +++++++-
2 files changed, 15 insertions(+), 2 deletions(-)

Detailed changes

crates/acp_thread/src/diff.rs 🔗

@@ -86,9 +86,16 @@ impl Diff {
 
     pub fn new(buffer: Entity<Buffer>, cx: &mut Context<Self>) -> Self {
         let buffer_text_snapshot = buffer.read(cx).text_snapshot();
+        let language = buffer.read(cx).language().cloned();
+        let language_registry = buffer.read(cx).language_registry();
         let buffer_diff = cx.new(|cx| {
             let mut diff = BufferDiff::new_unchanged(&buffer_text_snapshot, cx);
-            let secondary_diff = cx.new(|cx| BufferDiff::new_unchanged(&buffer_text_snapshot, cx));
+            diff.language_changed(language.clone(), language_registry.clone(), cx);
+            let secondary_diff = cx.new(|cx| {
+                let mut diff = BufferDiff::new_unchanged(&buffer_text_snapshot, cx);
+                diff.language_changed(language, language_registry, cx);
+                diff
+            });
             diff.set_secondary_diff(secondary_diff);
             diff
         });

crates/action_log/src/action_log.rs 🔗

@@ -79,7 +79,13 @@ impl ActionLog {
                 });
 
                 let text_snapshot = buffer.read(cx).text_snapshot();
-                let diff = cx.new(|cx| BufferDiff::new(&text_snapshot, cx));
+                let language = buffer.read(cx).language().cloned();
+                let language_registry = buffer.read(cx).language_registry();
+                let diff = cx.new(|cx| {
+                    let mut diff = BufferDiff::new(&text_snapshot, cx);
+                    diff.language_changed(language, language_registry, cx);
+                    diff
+                });
                 let (diff_update_tx, diff_update_rx) = mpsc::unbounded();
                 let diff_base;
                 let unreviewed_edits;