on master help sign in
Fix panic when using set-language on a scratch (#1996)
a0c6c45Roland Kovacs
helix-view/src/editor.rs+4−1
@@ -453,6 +453,9 @@ impl Editor {
453
453
454 /// Launch a language server for a given document
454 /// Launch a language server for a given document
455 fn launch_language_server(ls: &mut helix_lsp::Registry, doc: &mut Document) -> Option<()> {
455 fn launch_language_server(ls: &mut helix_lsp::Registry, doc: &mut Document) -> Option<()> {
456+ // if doc doesn't have a URL it's a scratch buffer, ignore it
457+ let doc_url = doc.url()?;
458+
456 // try to find a language server based on the language name
459 // try to find a language server based on the language name
457 let language_server = doc.language.as_ref().and_then(|language| {
460 let language_server = doc.language.as_ref().and_then(|language| {
458 ls.get(language)
461 ls.get(language)
@@ -476,7 +479,7 @@ impl Editor {
476
479
477 // TODO: this now races with on_init code if the init happens too quickly
480 // TODO: this now races with on_init code if the init happens too quickly
478 tokio::spawn(language_server.text_document_did_open(
481 tokio::spawn(language_server.text_document_did_open(
479− doc.url().unwrap(),
482+ doc_url,
480 doc.version(),
483 doc.version(),
481 doc.text(),
484 doc.text(),
482 language_id,
485 language_id,