From 80b4a690535b2171cc7db2ee6b4daf3bcb4c4f11 Mon Sep 17 00:00:00 2001 From: wojciechkepka Date: Fri, 18 Jun 2021 05:40:57 +0200 Subject: [PATCH] Update `client::reply` to be non async --- helix-lsp/src/client.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/helix-lsp/src/client.rs b/helix-lsp/src/client.rs index 0b52681c..6554e996 100644 --- a/helix-lsp/src/client.rs +++ b/helix-lsp/src/client.rs @@ -165,13 +165,16 @@ impl Client { } /// Reply to a language server RPC call. - pub async fn reply( + pub fn reply( &self, id: jsonrpc::Id, result: core::result::Result, - ) -> Result<()> { + ) -> impl Future> { use jsonrpc::{Failure, Output, Success, Version}; + let server_tx = self.server_tx.clone(); + + async move { let output = match result { Ok(result) => Output::Success(Success { jsonrpc: Some(Version::V2), @@ -185,12 +188,13 @@ impl Client { }), }; - self.server_tx + server_tx .send(Payload::Response(output)) .map_err(|e| Error::Other(e.into()))?; Ok(()) } + } // ------------------------------------------------------------------------------------------- // General messages