@@ -38,8 +38,6 @@ pub enum Error {
3838 Timeout,
3939 #[error("server closed the stream")]
4040 StreamClosed,
41− #[error("LSP not defined")]
42− LspNotDefined,
4341 #[error("Unhandled")]
4442 Unhandled,
4543 #[error(transparent)]
@@ -320,14 +318,14 @@ impl Registry {
320318 .map(|(_, client)| client.as_ref())
321319 }
322320
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>>> {
324322 let config = match &language_config.language_server {
325323 Some(config) => config,
326− None => return Err(Error::LspNotDefined),
324+ None => return Ok(None),
327325 };
328326
329327 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())),
331329 Entry::Vacant(entry) => {
332330 // initialize a new client
333331 let id = self.counter.fetch_add(1, Ordering::Relaxed);
@@ -356,11 +354,7 @@ impl Registry {
356354 .await;
357355
358356 if let Err(e) = value {
359− if let Error::LspNotDefined = e {
360− // Skip logging "lsp not defined"
361− } else {
362− log::error!("failed to initialize language server: {}", e);
363− }
357+ log::error!("failed to initialize language server: {}", e);
364358 return;
365359 }
366360
@@ -374,7 +368,7 @@ impl Registry {
374368 });
375369
376370 entry.insert((id, client.clone()));
377− Ok(client)
371+ Ok(Some(client))
378372 }
379373 }
380374 }