@@ -38,8 +38,6 @@ pub enum Error {
39 #[error("server closed the stream")]
39 #[error("server closed the stream")]
40 StreamClosed,
40 StreamClosed,
41− #[error("LSP not defined")]
43 #[error("Unhandled")]
41 #[error("Unhandled")]
44 Unhandled,
42 Unhandled,
45 #[error(transparent)]
43 #[error(transparent)]
@@ -320,14 +318,14 @@ impl Registry {
320 .map(|(_, client)| client.as_ref())
318 .map(|(_, client)| client.as_ref())
323− pub fn get(&mut self, language_config: &LanguageConfiguration) -> Result<Arc<Client>> {
321+ pub fn get(&mut self, language_config: &LanguageConfiguration) -> Result<Option<Arc<Client>>> {
324 let config = match &language_config.language_server {
322 let config = match &language_config.language_server {
325 Some(config) => config,
323 Some(config) => config,
326− None => return Err(Error::LspNotDefined),
324+ None => return Ok(None),
329 match self.inner.entry(language_config.scope.clone()) {
327 match self.inner.entry(language_config.scope.clone()) {
330− Entry::Occupied(entry) => Ok(entry.get().1.clone()),
328+ Entry::Occupied(entry) => Ok(Some(entry.get().1.clone())),
331 Entry::Vacant(entry) => {
329 Entry::Vacant(entry) => {
332 // initialize a new client
330 // initialize a new client
333 let id = self.counter.fetch_add(1, Ordering::Relaxed);
331 let id = self.counter.fetch_add(1, Ordering::Relaxed);
@@ -356,11 +354,7 @@ impl Registry {
358 if let Err(e) = value {
356 if let Err(e) = value {
359− if let Error::LspNotDefined = e {
360− // Skip logging "lsp not defined"
362− log::error!("failed to initialize language server: {}", e);
357+ log::error!("failed to initialize language server: {}", e);
@@ -374,7 +368,7 @@ impl Registry {
376 entry.insert((id, client.clone()));
370 entry.insert((id, client.clone()));
377− Ok(client)
371+ Ok(Some(client))