@@ -353,6 +353,7 @@ impl Registry {
353 pub fn restart(
353 pub fn restart(
354 &mut self,
354 &mut self,
355 language_config: &LanguageConfiguration,
355 language_config: &LanguageConfiguration,
356+ doc_path: Option<&std::path::PathBuf>,
356 ) -> Result<Option<Arc<Client>>> {
357 ) -> Result<Option<Arc<Client>>> {
357 let config = match &language_config.language_server {
358 let config = match &language_config.language_server {
358 Some(config) => config,
359 Some(config) => config,
@@ -367,7 +368,8 @@ impl Registry {
367 // initialize a new client
368 // initialize a new client
368 let id = self.counter.fetch_add(1, Ordering::Relaxed);
369 let id = self.counter.fetch_add(1, Ordering::Relaxed);
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)?;
371 self.incoming.push(UnboundedReceiverStream::new(incoming));
373 self.incoming.push(UnboundedReceiverStream::new(incoming));
373 let (_, old_client) = entry.insert((id, client.clone()));
375 let (_, old_client) = entry.insert((id, client.clone()));
@@ -381,7 +383,11 @@ impl Registry {
384− pub fn get(&mut self, language_config: &LanguageConfiguration) -> Result<Option<Arc<Client>>> {
388+ language_config: &LanguageConfiguration,
389+ doc_path: Option<&std::path::PathBuf>,
390+ ) -> Result<Option<Arc<Client>>> {
385 let config = match &language_config.language_server {
391 let config = match &language_config.language_server {
386 Some(config) => config,
392 Some(config) => config,
387 None => return Ok(None),
393 None => return Ok(None),
@@ -393,7 +399,8 @@ impl Registry {
393 // initialize a new client
399 // initialize a new client
394 let id = self.counter.fetch_add(1, Ordering::Relaxed);
400 let id = self.counter.fetch_add(1, Ordering::Relaxed);
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)?;
397 self.incoming.push(UnboundedReceiverStream::new(incoming));
404 self.incoming.push(UnboundedReceiverStream::new(incoming));
399 entry.insert((id, client.clone()));
406 entry.insert((id, client.clone()));
@@ -493,6 +500,7 @@ fn start_client(
493 id: usize,
500 id: usize,
494 config: &LanguageConfiguration,
501 config: &LanguageConfiguration,
495 ls_config: &LanguageServerConfiguration,
502 ls_config: &LanguageServerConfiguration,
503+ doc_path: Option<&std::path::PathBuf>,
496) -> Result<NewClientResult> {
504) -> Result<NewClientResult> {
497 let (client, incoming, initialize_notify) = Client::start(
505 let (client, incoming, initialize_notify) = Client::start(
498 &ls_config.command,
506 &ls_config.command,
@@ -501,6 +509,7 @@ fn start_client(
501 &config.roots,
509 &config.roots,
503 ls_config.timeout,
511 ls_config.timeout,
506 let client = Arc::new(client);
515 let client = Arc::new(client);