diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-11-09 12:26:39 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-09 12:26:39 +1100 |
commit | f5eb177f50a0bf37bc6bd9d87b447c73a53b6ea5 (patch) | |
tree | 1990dadf311de59b45c677e234219a161f3ebf9d /cli/lsp/language_server.rs | |
parent | 45425c114610516287c8e5831c9b6f023dfc8180 (diff) |
feat(cli): support React 17 JSX transforms (#12631)
Closes #8440
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 89e286718..73d028e76 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -116,7 +116,7 @@ pub(crate) struct Inner { /// file which will be used by the Deno LSP. maybe_config_uri: Option<Url>, /// An optional import map which is used to resolve modules. - pub(crate) maybe_import_map: Option<ImportMap>, + pub(crate) maybe_import_map: Option<Arc<ImportMap>>, /// The URL for the import map which is used to determine relative imports. maybe_import_map_uri: Option<Url>, /// A collection of measurements which instrument that performance of the LSP. @@ -481,13 +481,13 @@ impl Inner { ) })? }; - let import_map = - ImportMap::from_json(&import_map_url.to_string(), &import_map_json)?; + let import_map = Arc::new(ImportMap::from_json( + &import_map_url.to_string(), + &import_map_json, + )?); self.maybe_import_map_uri = Some(import_map_url); - self.maybe_import_map = Some(import_map.clone()); - self.documents.set_import_map(Some(Arc::new(import_map))); + self.maybe_import_map = Some(import_map); } else { - self.documents.set_import_map(None); self.maybe_import_map = None; } self.performance.measure(mark); @@ -700,6 +700,10 @@ impl Inner { if let Err(err) = self.update_registries().await { self.client.show_message(MessageType::Warning, err).await; } + self.documents.update_config( + self.maybe_import_map.clone(), + self.maybe_config_file.as_ref(), + ); self.performance.measure(mark); Ok(InitializeResult { @@ -908,6 +912,10 @@ impl Inner { if let Err(err) = self.diagnostics_server.update() { error!("{}", err); } + self.documents.update_config( + self.maybe_import_map.clone(), + self.maybe_config_file.as_ref(), + ); self.performance.measure(mark); } @@ -942,6 +950,10 @@ impl Inner { } } if touched { + self.documents.update_config( + self.maybe_import_map.clone(), + self.maybe_config_file.as_ref(), + ); self.diagnostics_server.invalidate_all().await; if let Err(err) = self.diagnostics_server.update() { error!("Cannot update diagnostics: {}", err); @@ -2624,6 +2636,7 @@ impl Inner { CacheServer::new( self.maybe_cache_path.clone(), self.maybe_import_map.clone(), + self.maybe_config_file.clone(), ) .await, ); |