@@ -111,10 +111,13 @@ impl Document {
112 let text = self.text().clone();
112 let text = self.text().clone();
113 let path = self.path.clone().expect("Can't save with no path set!"); // TODO: handle no path
113 let path = self.path.clone().expect("Can't save with no path set!"); // TODO: handle no path
114+ let identifier = self.identifier();
115 // TODO: mark changes up to now as saved
116 // TODO: mark changes up to now as saved
116 // TODO: mark dirty false
117 // TODO: mark dirty false
119+ let language_server = self.language_server.clone();
118 async move {
121 async move {
119 use smol::{fs::File, prelude::*};
122 use smol::{fs::File, prelude::*};
120 let mut file = File::create(path).await?;
123 let mut file = File::create(path).await?;
@@ -125,8 +128,14 @@ impl Document {
126 // TODO: flush?
129 // TODO: flush?
131+ if let Some(language_server) = language_server {
133+ .text_document_did_save(identifier, &text)
129− } // and_then notify save
138+ }
132 pub fn set_language(
141 pub fn set_language(