on master help sign in
Expose doc.language_server as an accessor.
e261f3cBlaž Hrastnik
helix-term/src/commands.rs+7−7
@@ -888,7 +888,7 @@ fn goto(cx: &mut Context, locations: Vec<lsp::Location>) {
888
888
889pub fn goto_definition(cx: &mut Context) {
889pub fn goto_definition(cx: &mut Context) {
890 let doc = cx.doc();
890 let doc = cx.doc();
891− let language_server = match doc.language_server.as_ref() {
891+ let language_server = match doc.language_server() {
892 Some(language_server) => language_server,
892 Some(language_server) => language_server,
893 None => return,
893 None => return,
894 };
894 };
@@ -904,7 +904,7 @@ pub fn goto_definition(cx: &mut Context) {
904
904
905pub fn goto_type_definition(cx: &mut Context) {
905pub fn goto_type_definition(cx: &mut Context) {
906 let doc = cx.doc();
906 let doc = cx.doc();
907− let language_server = match doc.language_server.as_ref() {
907+ let language_server = match doc.language_server() {
908 Some(language_server) => language_server,
908 Some(language_server) => language_server,
909 None => return,
909 None => return,
910 };
910 };
@@ -920,7 +920,7 @@ pub fn goto_type_definition(cx: &mut Context) {
920
920
921pub fn goto_implementation(cx: &mut Context) {
921pub fn goto_implementation(cx: &mut Context) {
922 let doc = cx.doc();
922 let doc = cx.doc();
923− let language_server = match doc.language_server.as_ref() {
923+ let language_server = match doc.language_server() {
924 Some(language_server) => language_server,
924 Some(language_server) => language_server,
925 None => return,
925 None => return,
926 };
926 };
@@ -936,7 +936,7 @@ pub fn goto_implementation(cx: &mut Context) {
936
936
937pub fn goto_reference(cx: &mut Context) {
937pub fn goto_reference(cx: &mut Context) {
938 let doc = cx.doc();
938 let doc = cx.doc();
939− let language_server = match doc.language_server.as_ref() {
939+ let language_server = match doc.language_server() {
940 Some(language_server) => language_server,
940 Some(language_server) => language_server,
941 None => return,
941 None => return,
942 };
942 };
@@ -1179,7 +1179,7 @@ pub fn format_selections(cx: &mut Context) {
1179 .collect();
1179 .collect();
1180
1180
1181 for range in ranges {
1181 for range in ranges {
1182− let language_server = match doc.language_server.as_ref() {
1182+ let language_server = match doc.language_server() {
1183 Some(language_server) => language_server,
1183 Some(language_server) => language_server,
1184 None => return,
1184 None => return,
1185 };
1185 };
@@ -1279,7 +1279,7 @@ pub fn save(cx: &mut Context) {
1279pub fn completion(cx: &mut Context) {
1279pub fn completion(cx: &mut Context) {
1280 let doc = cx.doc();
1280 let doc = cx.doc();
1281
1281
1282− let language_server = match doc.language_server.as_ref() {
1282+ let language_server = match doc.language_server() {
1283 Some(language_server) => language_server,
1283 Some(language_server) => language_server,
1284 None => return,
1284 None => return,
1285 };
1285 };
@@ -1378,7 +1378,7 @@ pub fn hover(cx: &mut Context) {
1378
1378
1379 let doc = cx.doc();
1379 let doc = cx.doc();
1380
1380
1381− let language_server = match doc.language_server.as_ref() {
1381+ let language_server = match doc.language_server() {
1382 Some(language_server) => language_server,
1382 Some(language_server) => language_server,
1383 None => return,
1383 None => return,
1384 };
1384 };
helix-view/src/document.rs+6−2
@@ -40,7 +40,7 @@ pub struct Document {
40 version: i32, // should be usize?
40 version: i32, // should be usize?
41
41
42 pub diagnostics: Vec<Diagnostic>,
42 pub diagnostics: Vec<Diagnostic>,
43− pub language_server: Option<Arc<helix_lsp::Client>>,
43+ language_server: Option<Arc<helix_lsp::Client>>,
44}
44}
45
45
46/// Like std::mem::replace() except it allows the replacement value to be mapped from the
46/// Like std::mem::replace() except it allows the replacement value to be mapped from the
@@ -172,7 +172,7 @@ impl Document {
172 self.state.selection = selection;
172 self.state.selection = selection;
173 }
173 }
174
174
175− pub fn _apply(&mut self, transaction: &Transaction) -> bool {
175+ fn _apply(&mut self, transaction: &Transaction) -> bool {
176 let old_doc = self.text().clone();
176 let old_doc = self.text().clone();
177
177
178 let success = transaction.apply(&mut self.state);
178 let success = transaction.apply(&mut self.state);
@@ -288,6 +288,10 @@ impl Document {
288 self.version
288 self.version
289 }
289 }
290
290
291+ pub fn language_server(&self) -> Option<&helix_lsp::Client> {
292+ self.language_server.as_deref()
293+ }
294+
291 #[inline]
295 #[inline]
292 pub fn path(&self) -> Option<&PathBuf> {
296 pub fn path(&self) -> Option<&PathBuf> {
293 self.path.as_ref()
297 self.path.as_ref()