From e261f3c50d0e06860ffbeee0178381fa789dfd96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Thu, 18 Mar 2021 14:40:22 +0900 Subject: [PATCH] Expose doc.language_server as an accessor. --- helix-term/src/commands.rs | 14 +++++++------- helix-view/src/document.rs | 8 ++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index f3847eda..9179a5ce 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -888,7 +888,7 @@ fn goto(cx: &mut Context, locations: Vec) { pub fn goto_definition(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -904,7 +904,7 @@ pub fn goto_definition(cx: &mut Context) { pub fn goto_type_definition(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -920,7 +920,7 @@ pub fn goto_type_definition(cx: &mut Context) { pub fn goto_implementation(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -936,7 +936,7 @@ pub fn goto_implementation(cx: &mut Context) { pub fn goto_reference(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -1179,7 +1179,7 @@ pub fn format_selections(cx: &mut Context) { .collect(); for range in ranges { - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -1279,7 +1279,7 @@ pub fn save(cx: &mut Context) { pub fn completion(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; @@ -1378,7 +1378,7 @@ pub fn hover(cx: &mut Context) { let doc = cx.doc(); - let language_server = match doc.language_server.as_ref() { + let language_server = match doc.language_server() { Some(language_server) => language_server, None => return, }; diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index ffbe8930..36bca5fe 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -40,7 +40,7 @@ pub struct Document { version: i32, // should be usize? pub diagnostics: Vec, - pub language_server: Option>, + language_server: Option>, } /// Like std::mem::replace() except it allows the replacement value to be mapped from the @@ -172,7 +172,7 @@ impl Document { self.state.selection = selection; } - pub fn _apply(&mut self, transaction: &Transaction) -> bool { + fn _apply(&mut self, transaction: &Transaction) -> bool { let old_doc = self.text().clone(); let success = transaction.apply(&mut self.state); @@ -288,6 +288,10 @@ impl Document { self.version } + pub fn language_server(&self) -> Option<&helix_lsp::Client> { + self.language_server.as_deref() + } + #[inline] pub fn path(&self) -> Option<&PathBuf> { self.path.as_ref()