Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-view/src/editor.rs')
| -rw-r--r-- | helix-view/src/editor.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 1d0e5ba8..02a7285c 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -9,8 +9,6 @@ use crate::{ Document, DocumentId, View, ViewId, }; -use futures_util::future; - use std::{ borrow::Cow, collections::{BTreeMap, HashMap}, @@ -37,6 +35,9 @@ use helix_core::{ }; use helix_core::{Position, Selection}; +#[cfg(feature = "lsp")] +use futures_util::future; + #[cfg(feature = "dap")] use futures_util::stream::select_all::SelectAll; #[cfg(feature = "dap")] @@ -436,6 +437,7 @@ pub struct Editor { pub registers: Registers, pub macro_recording: Option<(char, Vec<KeyEvent>)>, pub theme: Theme, + #[cfg(feature = "lsp")] pub language_servers: helix_lsp::Registry, #[cfg(feature = "dap")] @@ -495,7 +497,6 @@ impl Editor { syn_loader: Arc<syntax::Loader>, config: Box<dyn DynAccess<Config>>, ) -> Self { - let language_servers = helix_lsp::Registry::new(); let conf = config.load(); let auto_pairs = (&conf.auto_pairs).into(); @@ -510,7 +511,8 @@ impl Editor { selected_register: None, macro_recording: None, theme: theme_loader.default(), - language_servers, + #[cfg(feature = "lsp")] + language_servers: helix_lsp::Registry::new(), #[cfg(feature = "dap")] debugger: None, #[cfg(feature = "dap")] @@ -581,12 +583,14 @@ impl Editor { self._refresh(); } + #[cfg(feature = "lsp")] /// Refreshes the language server for a given document pub fn refresh_language_server(&mut self, doc_id: DocumentId) -> Option<()> { let doc = self.documents.get_mut(&doc_id)?; Self::launch_language_server(&mut self.language_servers, doc) } + #[cfg(feature = "lsp")] /// 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 @@ -624,7 +628,7 @@ impl Editor { doc.set_language_server(Some(language_server)); } } - Some(()) + Some(()) // TODO: what's the deal with the return type } fn _refresh(&mut self) { @@ -768,6 +772,7 @@ impl Editor { } else { let mut doc = Document::open(&path, None, Some(self.syn_loader.clone()))?; + #[cfg(feature = "lsp")] let _ = Self::launch_language_server(&mut self.language_servers, &mut doc); self.new_document(doc) @@ -805,6 +810,7 @@ impl Editor { ); } + #[cfg(feature = "lsp")] if let Some(language_server) = doc.language_server() { tokio::spawn(language_server.text_document_did_close(doc.identifier())); } @@ -954,6 +960,7 @@ impl Editor { } } + #[cfg(feature = "lsp")] /// Closes language servers with timeout. The default timeout is 500 ms, use /// `timeout` parameter to override this. pub async fn close_language_servers( |