From a45a40533eb25c5a12df98189338320f8aa6dcc4 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Tue, 23 Jul 2024 19:39:14 +0100 Subject: fix(lsp): rewrite import for 'infer return type' action (#24685) --- cli/lsp/analysis.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'cli/lsp/analysis.rs') diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs index 8480f6e1d..a6a69cbf0 100644 --- a/cli/lsp/analysis.rs +++ b/cli/lsp/analysis.rs @@ -73,8 +73,9 @@ static PREFERRED_FIXES: Lazy> = .collect() }); -static IMPORT_SPECIFIER_RE: Lazy = - lazy_regex::lazy_regex!(r#"\sfrom\s+["']([^"']*)["']"#); +static IMPORT_SPECIFIER_RE: Lazy = lazy_regex::lazy_regex!( + r#"\sfrom\s+["']([^"']*)["']|import\s*\(\s*["']([^"']*)["']\s*\)"# +); const SUPPORTED_EXTENSIONS: &[&str] = &[ ".ts", ".tsx", ".js", ".jsx", ".mjs", ".mts", ".cjs", ".cts", ".d.ts", @@ -528,7 +529,8 @@ pub fn fix_ts_import_changes( .map(|line| { // This assumes that there's only one import per line. if let Some(captures) = IMPORT_SPECIFIER_RE.captures(line) { - let specifier = captures.get(1).unwrap().as_str(); + let specifier = + captures.iter().skip(1).find_map(|s| s).unwrap().as_str(); if let Some(new_specifier) = import_mapper.check_unresolved_specifier(specifier, referrer) { -- cgit v1.2.3