mirror of https://github.com/helix-editor/helix
Fix panic when using set-language on a scratch (#1996)
Skip launching a language server if a document doesn't have a valid URL.pull/2094/head
parent
3deb1c9230
commit
a0c6c45c1b
|
@ -453,6 +453,9 @@ impl Editor {
|
||||||
|
|
||||||
/// Launch a language server for a given document
|
/// Launch a language server for a given document
|
||||||
fn launch_language_server(ls: &mut helix_lsp::Registry, doc: &mut Document) -> Option<()> {
|
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
|
// try to find a language server based on the language name
|
||||||
let language_server = doc.language.as_ref().and_then(|language| {
|
let language_server = doc.language.as_ref().and_then(|language| {
|
||||||
ls.get(language)
|
ls.get(language)
|
||||||
|
@ -476,7 +479,7 @@ impl Editor {
|
||||||
|
|
||||||
// TODO: this now races with on_init code if the init happens too quickly
|
// TODO: this now races with on_init code if the init happens too quickly
|
||||||
tokio::spawn(language_server.text_document_did_open(
|
tokio::spawn(language_server.text_document_did_open(
|
||||||
doc.url().unwrap(),
|
doc_url,
|
||||||
doc.version(),
|
doc.version(),
|
||||||
doc.text(),
|
doc.text(),
|
||||||
language_id,
|
language_id,
|
||||||
|
|
Loading…
Reference in New Issue