@@ -453,6 +453,9 @@ impl Editor {
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()?;
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 {
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,