diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-03-25 11:13:37 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-25 11:13:37 +1100 |
commit | 5ebb4017030c065c31d52be50dc7fa7a4c128d64 (patch) | |
tree | 2983a0deeb164cc64ab45feb0f892e969b386115 /cli/lsp/sources.rs | |
parent | d6d5ced1ab90404d25a87a242ee5b03ca655abe5 (diff) |
feat(lsp): add import completions (#9821)
Diffstat (limited to 'cli/lsp/sources.rs')
-rw-r--r-- | cli/lsp/sources.rs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/cli/lsp/sources.rs b/cli/lsp/sources.rs index 445c49824..d8134d5a2 100644 --- a/cli/lsp/sources.rs +++ b/cli/lsp/sources.rs @@ -117,14 +117,16 @@ impl Metadata { media_type: &MediaType, maybe_import_map: &Option<ImportMap>, ) -> Self { - let (dependencies, maybe_types) = if let Some((dependencies, maybe_types)) = - analysis::analyze_dependencies( + let (dependencies, maybe_types) = if let Ok(parsed_module) = + analysis::parse_module(specifier, source, media_type) + { + let (deps, maybe_types) = analysis::analyze_dependencies( specifier, - source, media_type, + &parsed_module, maybe_import_map, - ) { - (Some(dependencies), maybe_types) + ); + (Some(deps), maybe_types) } else { (None, None) }; @@ -202,6 +204,17 @@ impl Sources { ) -> Option<(ModuleSpecifier, MediaType)> { self.0.lock().unwrap().resolve_import(specifier, referrer) } + + pub fn specifiers(&self) -> Vec<ModuleSpecifier> { + self + .0 + .lock() + .unwrap() + .metadata + .iter() + .map(|(s, _)| s.clone()) + .collect() + } } impl Inner { |