aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-03-12 07:20:56 +0000
committerBlaž Hrastnik2021-03-12 07:25:12 +0000
commit6cbfb050e2c99acf5cdfe7d981c262fbdeaf761c (patch)
tree5fb54d50d2cb0c72e62bea9b0ca52d0dc8c70d9c /helix-view/src
parentb7dd7310c44532f3e6e3154367100ee6520ca69b (diff)
lsp: Emit didSave notifications.
Diffstat (limited to 'helix-view/src')
-rw-r--r--helix-view/src/document.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index b79e201d..f394f2be 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -111,10 +111,13 @@ impl Document {
let text = self.text().clone();
let path = self.path.clone().expect("Can't save with no path set!"); // TODO: handle no path
+ let identifier = self.identifier();
// TODO: mark changes up to now as saved
// TODO: mark dirty false
+ let language_server = self.language_server.clone();
+
async move {
use smol::{fs::File, prelude::*};
let mut file = File::create(path).await?;
@@ -125,8 +128,14 @@ impl Document {
}
// TODO: flush?
+ if let Some(language_server) = language_server {
+ language_server
+ .text_document_did_save(identifier, &text)
+ .await?;
+ }
+
Ok(())
- } // and_then notify save
+ }
}
pub fn set_language(