@@ -353,6 +353,7 @@ impl Registry {
353353 pub fn restart(
354354 &mut self,
355355 language_config: &LanguageConfiguration,
356+ doc_path: Option<&std::path::PathBuf>,
356357 ) -> Result<Option<Arc<Client>>> {
357358 let config = match &language_config.language_server {
358359 Some(config) => config,
@@ -367,7 +368,8 @@ impl Registry {
367368 // initialize a new client
368369 let id = self.counter.fetch_add(1, Ordering::Relaxed);
369370
370− let NewClientResult(client, incoming) = start_client(id, language_config, config)?;
371+ let NewClientResult(client, incoming) =
372+ start_client(id, language_config, config, doc_path)?;
371373 self.incoming.push(UnboundedReceiverStream::new(incoming));
372374
373375 let (_, old_client) = entry.insert((id, client.clone()));
@@ -381,7 +383,11 @@ impl Registry {
381383 }
382384 }
383385
384− pub fn get(&mut self, language_config: &LanguageConfiguration) -> Result<Option<Arc<Client>>> {
386+ pub fn get(
387+ &mut self,
388+ language_config: &LanguageConfiguration,
389+ doc_path: Option<&std::path::PathBuf>,
390+ ) -> Result<Option<Arc<Client>>> {
385391 let config = match &language_config.language_server {
386392 Some(config) => config,
387393 None => return Ok(None),
@@ -393,7 +399,8 @@ impl Registry {
393399 // initialize a new client
394400 let id = self.counter.fetch_add(1, Ordering::Relaxed);
395401
396− let NewClientResult(client, incoming) = start_client(id, language_config, config)?;
402+ let NewClientResult(client, incoming) =
403+ start_client(id, language_config, config, doc_path)?;
397404 self.incoming.push(UnboundedReceiverStream::new(incoming));
398405
399406 entry.insert((id, client.clone()));
@@ -493,6 +500,7 @@ fn start_client(
493500 id: usize,
494501 config: &LanguageConfiguration,
495502 ls_config: &LanguageServerConfiguration,
503+ doc_path: Option<&std::path::PathBuf>,
496504) -> Result<NewClientResult> {
497505 let (client, incoming, initialize_notify) = Client::start(
498506 &ls_config.command,
@@ -501,6 +509,7 @@ fn start_client(
501509 &config.roots,
502510 id,
503511 ls_config.timeout,
512+ doc_path,
504513 )?;
505514
506515 let client = Arc::new(client);