From 60b5d32d902deb46f640cbdb0d2d4caf47a437c4 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 24 Nov 2023 17:35:33 -0500 Subject: fix(lsp): handle byonm specifiers in jupyter notebooks (#21332) Part of https://github.com/denoland/deno/issues/21308 --- cli/lsp/tsc.rs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'cli/lsp/tsc.rs') diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 94770603c..e664c1b0e 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -3,7 +3,6 @@ use super::analysis::CodeActionData; use super::code_lens; use super::config; -use super::documents::file_like_to_file_specifier; use super::documents::AssetOrDocument; use super::documents::DocumentsFilter; use super::language_server; @@ -257,9 +256,9 @@ impl TsServer { .map(|s| self.specifier_map.denormalize(&s)) .collect::>(),]), }; - let diagnostics_map_ = self.request_with_cancellation::>>(snapshot, req, token).await?; - let mut diagnostics_map = HashMap::new(); - for (mut specifier, mut diagnostics) in diagnostics_map_ { + let raw_diagnostics = self.request_with_cancellation::>>(snapshot, req, token).await?; + let mut diagnostics_map = HashMap::with_capacity(raw_diagnostics.len()); + for (mut specifier, mut diagnostics) in raw_diagnostics { specifier = self.specifier_map.normalize(&specifier)?.to_string(); for diagnostic in &mut diagnostics { normalize_diagnostic(diagnostic, &self.specifier_map)?; @@ -3715,16 +3714,8 @@ impl TscSpecifierMap { if let Some(specifier) = self.denormalized_specifiers.get(original) { return specifier.to_string(); } - let mut specifier = if let Some(s) = file_like_to_file_specifier(original) { - s.to_string() - } else { - original.to_string() - }; - let media_type = if original.scheme() == "deno-notebook-cell" { - MediaType::TypeScript - } else { - MediaType::from_specifier(original) - }; + let mut specifier = original.to_string(); + let media_type = MediaType::from_specifier(original); // If the URL-inferred media type doesn't correspond to tsc's path-inferred // media type, force it to be the same by appending an extension. if MediaType::from_path(Path::new(specifier.as_str())) != media_type { -- cgit v1.2.3