From f63be003637c4bccfd6b83ce46d697656ce4dad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20F=C3=B6rster?= Date: Sat, 5 Jun 2021 09:50:49 +0200 Subject: [PATCH] Re-introduce build on save feature --- src/server.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/server.rs b/src/server.rs index cddebd8c..75f28dd1 100644 --- a/src/server.rs +++ b/src/server.rs @@ -288,6 +288,35 @@ impl Server { fn did_save(&self, params: DidSaveTextDocumentParams) -> Result<()> { let uri = params.text_document.uri.into(); + + let should_build = { self.context.options.read().unwrap().build.on_save }; + if let Some(request) = + self.workspace + .get(&uri) + .filter(|_| should_build) + .and_then(|document| { + self.feature_request( + Arc::clone(&document.uri), + BuildParams { + text_document: TextDocumentIdentifier::new(uri.clone().into()), + }, + ) + }) + { + let lsp_sender = self.connection.sender.clone(); + let build_engine = Arc::clone(&self.build_engine); + self.pool.execute(move || { + build_engine + .build(request, &lsp_sender) + .unwrap_or_else(|why| { + error!("Build failed: {}", why); + BuildResult { + status: BuildStatus::FAILURE, + } + }); + }); + } + let should_lint = { self.context.options.read().unwrap().chktex.on_open_and_save }; if let Some(document) = self.workspace.get(&uri).filter(|_| should_lint) { self.chktex_debouncer