on master help sign in
lsp: Pass through language_id on didOpenTextDocument.
commiteca2a73ad0e829dbd83da8f42a8a2bd5c17bbf75 authorBlaž Hrastnik <blaz@mxxn.io> dateTue 16 Mar 2021, 16:13 (6 years ago) parent143cfe1
3 files changed+10−1
helix-lsp/src/client.rs+2−1 helix-term/src/commands.rs+1 helix-view/src/editor.rs+7
helix-lsp/src/client.rs+2−1
@@ -244,11 +244,12 @@ impl Client {
244244 uri: lsp::Url,
245245 version: i32,
246246 doc: &Rope,
247+ language_id: String,
247248 ) -> Result<()> {
248249 self.notify::<lsp::notification::DidOpenTextDocument>(lsp::DidOpenTextDocumentParams {
249250 text_document: lsp::TextDocumentItem {
250251 uri,
251− language_id: "rust".to_string(), // TODO: hardcoded for now
252+ language_id,
252253 version,
253254 text: String::from(doc),
254255 },
helix-term/src/commands.rs+1
@@ -1183,6 +1183,7 @@ pub fn completion(cx: &mut Context) {
11831183 let pos = helix_lsp::util::pos_to_lsp_pos(doc.text().slice(..), doc.selection().cursor());
11841184
11851185 // TODO: handle fails
1186+
11861187 let res = smol::block_on(language_server.completion(doc.identifier(), pos)).unwrap_or_default();
11871188
11881189 // TODO: if no completion, show some message or something
helix-view/src/editor.rs+7
@@ -46,10 +46,17 @@ impl Editor {
4646 if let Some(language_server) = language_server {
4747 doc.set_language_server(Some(language_server.clone()));
4848
49+ let language_id = doc
50+ .language()
51+ .and_then(|s| s.split(".").last()) // source.rust
52+ .map(ToOwned::to_owned)
53+ .unwrap_or_default();
54+
4955 smol::block_on(language_server.text_document_did_open(
5056 doc.url().unwrap(),
5157 doc.version(),
5258 doc.text(),
59+ language_id,
5360 ))
5461 .unwrap();
5562 }