@@ -857,21 +857,15 @@ pub fn completion(cx: &mut Context) {
857 let language_server = cx.language_servers.get("rust", &cx.executor).unwrap();
857 let language_server = cx.language_servers.get("rust", &cx.executor).unwrap();
858 use log::info;
858 use log::info;
860− use smol_timeout::TimeoutExt;
861− use std::time::Duration;
863 // TODO: blocking here is not ideal
860 // TODO: blocking here is not ideal
864 let pos = helix_lsp::util::pos_to_lsp_pos(
861 let pos = helix_lsp::util::pos_to_lsp_pos(
865 &cx.view.doc.text().slice(..),
862 &cx.view.doc.text().slice(..),
866 cx.view.doc.selection().cursor(),
863 cx.view.doc.selection().cursor(),
868− let res = smol::block_on(
865+
869− language_server
866+ // TODO: handle fails
870− .completion(cx.view.doc.identifier(), pos)
867+ let res = smol::block_on(language_server.completion(cx.view.doc.identifier(), pos))
871− .timeout(Duration::from_secs(2)),
873− .expect("completion failed!")
874− .unwrap_or_default(); // if timeout, just return
868+ .unwrap_or_default();
876 // TODO: if no completion, show some message or something
870 // TODO: if no completion, show some message or something
877 if !res.is_empty() {
871 if !res.is_empty() {