lsp: doc.language_server() is None until initialize completes
commit37606bad47fe0e197cb34fc7d52856597c32ce33
authorBlaž Hrastnik <blaz@mxxn.io>
dateThu 2 Sep 2021, 13:55 (5 years ago)
parent46f3c69
helix-lsp/src/client.rs+4
@@ -93,6 +93,10 @@ impl Client {
9393 }
9494 }
9595
96+ pub fn is_initialized(&self) -> bool {
97+ self.capabilities.get().is_some()
98+ }
99+
96100 pub fn capabilities(&self) -> &lsp::ServerCapabilities {
97101 self.capabilities
98102 .get()
helix-view/src/document.rs+11−2
@@ -798,9 +798,18 @@ impl Document {
798798 self.version
799799 }
800800
801− #[inline]
802801 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+ }
804813 }
805814
806815 #[inline]