diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/Cargo.toml | 12 | ||||
-rw-r--r-- | cli/ast/mod.rs | 27 | ||||
-rw-r--r-- | cli/lsp/analysis.rs | 40 | ||||
-rw-r--r-- | cli/module_graph.rs | 5 |
4 files changed, 42 insertions, 42 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 7c38f19fb..8a53e4389 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -43,8 +43,8 @@ winres = "0.1.11" [dependencies] deno_core = { version = "0.93.0", path = "../core" } -deno_doc = "0.8.0" -deno_lint = "0.10.0" +deno_doc = "0.9.0" +deno_lint = "0.11.0" deno_runtime = { version = "0.19.0", path = "../runtime" } atty = "0.2.14" @@ -55,7 +55,7 @@ data-url = "0.1.0" dissimilar = "1.0.2" dprint-plugin-json = "0.12.1" dprint-plugin-markdown = "0.9.2" -dprint-plugin-typescript = "0.48.0" +dprint-plugin-typescript = "0.49.0" encoding_rs = "0.8.28" env_logger = "0.8.4" fancy-regex = "0.5.0" @@ -81,9 +81,9 @@ semver-parser = "0.10.2" serde = { version = "1.0.126", features = ["derive"] } shell-escape = "0.1.5" sourcemap = "6.0.1" -swc_bundler = "0.45.0" -swc_common = { version = "0.10.23", features = ["sourcemap"] } -swc_ecmascript = { version = "0.45.0", features = ["codegen", "dep_graph", "parser", "proposal", "react", "transforms", "typescript", "visit"] } +swc_bundler = "0.46.0" +swc_common = { version = "0.11.0", features = ["sourcemap"] } +swc_ecmascript = { version = "0.46.0", features = ["codegen", "dep_graph", "parser", "proposal", "react", "transforms", "typescript", "visit"] } tempfile = "3.2.0" termcolor = "1.1.2" text-size = "1.1.0" diff --git a/cli/ast/mod.rs b/cli/ast/mod.rs index 25a9321bc..7b49bbedb 100644 --- a/cli/ast/mod.rs +++ b/cli/ast/mod.rs @@ -259,7 +259,7 @@ impl fmt::Debug for ParsedModule { impl ParsedModule { /// Return a vector of dependencies for the module. pub fn analyze_dependencies(&self) -> Vec<DependencyDescriptor> { - analyze_dependencies(&self.module, &self.source_map, &self.comments) + analyze_dependencies(&self.module, &self.comments) } /// Get the module's leading comments, where triple slash directives might @@ -595,14 +595,13 @@ impl swc_bundler::Hook for BundleHook { mod tests { use super::*; use std::collections::HashMap; + use swc_common::BytePos; use swc_ecmascript::dep_graph::DependencyKind; #[test] fn test_parsed_module_analyze_dependencies() { let specifier = resolve_url_or_path("https://deno.land/x/mod.js").unwrap(); - let source = r#"import * as bar from "./test.ts"; - const foo = await import("./foo.ts"); - "#; + let source = "import * as bar from './test.ts';\nconst foo = await import('./foo.ts');"; let parsed_module = parse(specifier.as_str(), source, &MediaType::JavaScript) .expect("could not parse module"); @@ -614,22 +613,26 @@ mod tests { kind: DependencyKind::Import, is_dynamic: false, leading_comments: Vec::new(), - col: 0, - line: 1, + span: Span::new(BytePos(0), BytePos(33), Default::default()), specifier: "./test.ts".into(), - specifier_col: 21, - specifier_line: 1, + specifier_span: Span::new( + BytePos(21), + BytePos(32), + Default::default() + ), import_assertions: HashMap::default(), }, DependencyDescriptor { kind: DependencyKind::Import, is_dynamic: true, leading_comments: Vec::new(), - col: 22, - line: 2, + span: Span::new(BytePos(52), BytePos(70), Default::default()), specifier: "./foo.ts".into(), - specifier_col: 29, - specifier_line: 2, + specifier_span: Span::new( + BytePos(59), + BytePos(69), + Default::default() + ), import_assertions: HashMap::default(), } ] diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index a1d6d909d..9994f147b 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -377,34 +377,30 @@ pub fn analyze_dependencies( let dep = dependencies.entry(desc.specifier.to_string()).or_default(); dep.is_dynamic = desc.is_dynamic; + let start = parsed_module + .source_map + .lookup_char_pos(desc.specifier_span.lo); + let end = parsed_module + .source_map + .lookup_char_pos(desc.specifier_span.hi); + let range = Range { + start: Position { + line: (start.line - 1) as u32, + character: start.col_display as u32, + }, + end: Position { + line: (end.line - 1) as u32, + character: end.col_display as u32, + }, + }; match desc.kind { swc_ecmascript::dep_graph::DependencyKind::ExportType | swc_ecmascript::dep_graph::DependencyKind::ImportType => { - dep.maybe_type_specifier_range = Some(Range { - start: Position { - line: (desc.specifier_line - 1) as u32, - character: desc.specifier_col as u32, - }, - end: Position { - line: (desc.specifier_line - 1) as u32, - character: (desc.specifier_col + desc.specifier.chars().count() + 2) - as u32, - }, - }); + dep.maybe_type_specifier_range = Some(range); dep.maybe_type = Some(resolved_import) } _ => { - dep.maybe_code_specifier_range = Some(Range { - start: Position { - line: (desc.specifier_line - 1) as u32, - character: desc.specifier_col as u32, - }, - end: Position { - line: (desc.specifier_line - 1) as u32, - character: (desc.specifier_col + desc.specifier.chars().count() + 2) - as u32, - }, - }); + dep.maybe_code_specifier_range = Some(range); dep.maybe_code = Some(resolved_import); } } diff --git a/cli/module_graph.rs b/cli/module_graph.rs index 8ec439a8e..8689072f0 100644 --- a/cli/module_graph.rs +++ b/cli/module_graph.rs @@ -386,10 +386,11 @@ impl Module { for desc in dependencies.iter().filter(|desc| { desc.kind != swc_ecmascript::dep_graph::DependencyKind::Require }) { + let loc = parsed_module.source_map.lookup_char_pos(desc.span.lo); let location = Location { filename: self.specifier.to_string(), - col: desc.col, - line: desc.line, + col: loc.col_display, + line: loc.line, }; // In situations where there is a potential issue with resolving the |