diff options
-rw-r--r-- | helix-lsp/src/client.rs | 3 | ||||
-rw-r--r-- | helix-term/src/commands.rs | 1 | ||||
-rw-r--r-- | helix-view/src/editor.rs | 7 |
3 files changed, 10 insertions, 1 deletions
diff --git a/helix-lsp/src/client.rs b/helix-lsp/src/client.rs index edec10a9..a9b7fe20 100644 --- a/helix-lsp/src/client.rs +++ b/helix-lsp/src/client.rs @@ -244,11 +244,12 @@ impl Client { uri: lsp::Url, version: i32, doc: &Rope, + language_id: String, ) -> Result<()> { self.notify::<lsp::notification::DidOpenTextDocument>(lsp::DidOpenTextDocumentParams { text_document: lsp::TextDocumentItem { uri, - language_id: "rust".to_string(), // TODO: hardcoded for now + language_id, version, text: String::from(doc), }, diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 16f43591..d80662d7 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -1183,6 +1183,7 @@ pub fn completion(cx: &mut Context) { let pos = helix_lsp::util::pos_to_lsp_pos(doc.text().slice(..), doc.selection().cursor()); // TODO: handle fails + let res = smol::block_on(language_server.completion(doc.identifier(), pos)).unwrap_or_default(); // TODO: if no completion, show some message or something diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index f79eadad..0dd0592c 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -46,10 +46,17 @@ impl Editor { if let Some(language_server) = language_server { doc.set_language_server(Some(language_server.clone())); + let language_id = doc + .language() + .and_then(|s| s.split(".").last()) // source.rust + .map(ToOwned::to_owned) + .unwrap_or_default(); + smol::block_on(language_server.text_document_did_open( doc.url().unwrap(), doc.version(), doc.text(), + language_id, )) .unwrap(); } |