on master help sign in
log errors produced when trying to initialize the LSP (#746)
ef532e0Kirawi
helix-lsp/src/lib.rs+9−1
@@ -318,7 +318,15 @@ impl Registry {
318 let (client, incoming, initialize_notify) = Client::start(
318 let (client, incoming, initialize_notify) = Client::start(
319 &config.command,
319 &config.command,
320 &config.args,
320 &config.args,
321− serde_json::from_str(language_config.config.as_deref().unwrap_or("")).ok(),
321+ serde_json::from_str(language_config.config.as_deref().unwrap_or(""))
322+ .map_err(|e| {
323+ log::error!(
324+ "LSP Config, {}, in `languages.toml` for `{}`",
325+ e,
326+ language_config.scope()
327+ )
328+ })
329+ .ok(),
322 id,
330 id,
323 )?;
331 )?;
324 self.incoming.push(UnboundedReceiverStream::new(incoming));
332 self.incoming.push(UnboundedReceiverStream::new(incoming));
helix-view/src/editor.rs+8−4
@@ -249,10 +249,14 @@ impl Editor {
249 let mut doc = Document::open(&path, None, Some(&self.theme), Some(&self.syn_loader))?;
249 let mut doc = Document::open(&path, None, Some(&self.theme), Some(&self.syn_loader))?;
250
250
251 // try to find a language server based on the language name
251 // try to find a language server based on the language name
252− let language_server = doc
252+ let language_server = doc.language.as_ref().and_then(|language| {
253− .language
254− .as_ref()
255− .and_then(|language| self.language_servers.get(language).ok());
253+ self.language_servers
254+ .get(language)
255+ .map_err(|e| {
256+ log::error!("Failed to get LSP, {}, for `{}`", e, language.scope())
257+ })
258+ .ok()
259+ });
256
260
257 if let Some(language_server) = language_server {
261 if let Some(language_server) = language_server {
258 let language_id = doc
262 let language_id = doc