From 18c32118b1df63895b662c1b37ada28ad0d5c9b5 Mon Sep 17 00:00:00 2001
From: Skyler Hawthorne <skyler@dead10ck.com>
Date: Tue, 30 Aug 2022 23:10:33 -0400
Subject: [PATCH] Save text in document saved events, use in status message

---
 helix-term/src/application.rs | 4 ++--
 helix-view/src/document.rs    | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs
index a06460de..793993ee 100644
--- a/helix-term/src/application.rs
+++ b/helix-term/src/application.rs
@@ -459,8 +459,8 @@ impl Application {
 
         doc.set_last_saved_revision(doc_save_event.revision);
 
-        let lines = doc.text().len_lines();
-        let bytes = doc.text().len_bytes();
+        let lines = doc_save_event.text.len_lines();
+        let bytes = doc_save_event.text.len_bytes();
 
         if let Err(err) = doc.set_path(Some(&doc_save_event.path)) {
             log::error!(
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index 91d5f8aa..61bea527 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -93,6 +93,7 @@ pub struct DocumentSavedEvent {
     pub revision: usize,
     pub doc_id: DocumentId,
     pub path: PathBuf,
+    pub text: Rope,
 }
 
 pub type DocumentSavedEventResult = Result<DocumentSavedEvent, anyhow::Error>;
@@ -620,6 +621,7 @@ impl Document {
                 revision: current_rev,
                 doc_id,
                 path,
+                text: text.clone(),
             };
 
             if let Some(language_server) = language_server {