on master help sign in
lsp: doc.language_server() is None until initialize completes
37606baBlaž Hrastnik
helix-lsp/src/client.rs+4
@@ -93,6 +93,10 @@ impl Client {
93 }
93 }
94 }
94 }
95
95
96+ pub fn is_initialized(&self) -> bool {
97+ self.capabilities.get().is_some()
98+ }
99+
96 pub fn capabilities(&self) -> &lsp::ServerCapabilities {
100 pub fn capabilities(&self) -> &lsp::ServerCapabilities {
97 self.capabilities
101 self.capabilities
98 .get()
102 .get()
helix-view/src/document.rs+11−2
@@ -798,9 +798,18 @@ impl Document {
798 self.version
798 self.version
799 }
799 }
800
800
801− #[inline]
802 pub fn language_server(&self) -> Option<&helix_lsp::Client> {
801 pub fn language_server(&self) -> Option<&helix_lsp::Client> {
803− self.language_server.as_deref()
802+ let server = self.language_server.as_deref();
803+ let initialized = server
804+ .map(|server| server.is_initialized())
805+ .unwrap_or(false);
806+
807+ // only resolve language_server if it's initialized
808+ if initialized {
809+ server
810+ } else {
811+ None
812+ }
804 }
813 }
805
814
806 #[inline]
815 #[inline]