diff options
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index cf7179670..2ac9ec3c0 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -1577,6 +1577,7 @@ impl Inner { touched = true; } } + if let Some(config_info) = self.maybe_config_file_info.as_mut() { if let Some(lockfile) = config_info.maybe_lockfile.as_ref() { let lockfile_path = lockfile.lock().filename.clone(); @@ -1595,6 +1596,7 @@ impl Inner { } } } + if let Some(package_json) = &self.maybe_package_json { // always update the package json if the deno config changes if touched || changes.contains(&package_json.specifier()) { @@ -1604,16 +1606,21 @@ impl Inner { touched = true; } } + // if the current import map, or config file has changed, we need to // reload the import map - if let Some(import_map_uri) = &self.maybe_import_map_uri { - if touched || changes.contains(import_map_uri) { - if let Err(err) = self.update_import_map().await { - self.client.show_message(MessageType::WARNING, err); - } - touched = true; + let import_map_changed = self + .maybe_import_map_uri + .as_ref() + .map(|uri| changes.contains(uri)) + .unwrap_or(false); + if touched || import_map_changed { + if let Err(err) = self.update_import_map().await { + self.client.show_message(MessageType::WARNING, err); } + touched = true; } + if touched { self.recreate_npm_services_if_necessary().await; self.refresh_documents_config(); |