Skip to content

Commit

Permalink
Fix panic when using set-language on a scratch
Browse files Browse the repository at this point in the history
Skip launching a language server if a document doesn't have a valid URL.
  • Loading branch information
zen3ger committed Apr 12, 2022
1 parent b03421a commit 888ebeb
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion helix-view/src/editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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,
Expand Down

0 comments on commit 888ebeb

Please sign in to comment.