From 888ebeb515976327d85b8b437da47e69367ade49 Mon Sep 17 00:00:00 2001 From: Roland Kovacs Date: Tue, 12 Apr 2022 18:38:05 +0200 Subject: [PATCH] Fix panic when using set-language on a scratch Skip launching a language server if a document doesn't have a valid URL. --- helix-view/src/editor.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index c4e9ec283f71..76fc67138d8b 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -453,6 +453,9 @@ impl Editor { /// Launch a language server for a given document fn launch_language_server(ls: &mut helix_lsp::Registry, doc: &mut Document) -> Option<()> { + // if doc doesn't have a URL it's a scratch buffer, ignore it + let doc_url = doc.url()?; + // try to find a language server based on the language name let language_server = doc.language.as_ref().and_then(|language| { ls.get(language) @@ -476,7 +479,7 @@ impl Editor { // TODO: this now races with on_init code if the init happens too quickly tokio::spawn(language_server.text_document_did_open( - doc.url().unwrap(), + doc_url, doc.version(), doc.text(), language_id,