diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-06-13 09:24:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-13 09:24:22 -0400 |
commit | 39bf1d2fd50a6921eef9e8f9a3f28c3c2b86d0fe (patch) | |
tree | ddd025dc3aee29e870c99a172fa3c3b1eeef39cf /cli/lsp/language_server.rs | |
parent | 07cbec4a822ea1b535511195217138d6e8b679ef (diff) |
fix(lsp): update import map config when deno.json changes (#19476)
Half of #19468
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(); |