diff options
Diffstat (limited to 'cli/lsp/documents.rs')
-rw-r--r-- | cli/lsp/documents.rs | 72 |
1 files changed, 40 insertions, 32 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 66ebe5115..419d08d50 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -1101,24 +1101,28 @@ impl Documents { &self, specifier: &'a ModuleSpecifier, ) -> SloppyImportsResolution<'a> { - SloppyImportsResolver::resolve_with_stat_sync(specifier, |path| { - if let Ok(specifier) = ModuleSpecifier::from_file_path(path) { - if self.open_docs.contains_key(&specifier) - || self.cache.contains(&specifier) - { - return Some(SloppyImportsFsEntry::File); - } - } - path.metadata().ok().and_then(|m| { - if m.is_file() { - Some(SloppyImportsFsEntry::File) - } else if m.is_dir() { - Some(SloppyImportsFsEntry::Dir) - } else { - None + SloppyImportsResolver::resolve_with_stat_sync( + specifier, + ResolutionMode::Types, + |path| { + if let Ok(specifier) = ModuleSpecifier::from_file_path(path) { + if self.open_docs.contains_key(&specifier) + || self.cache.contains(&specifier) + { + return Some(SloppyImportsFsEntry::File); + } } - }) - }) + path.metadata().ok().and_then(|m| { + if m.is_file() { + Some(SloppyImportsFsEntry::File) + } else if m.is_dir() { + Some(SloppyImportsFsEntry::Dir) + } else { + None + } + }) + }, + ) } /// Return `true` if the specifier can be resolved to a document. @@ -1800,22 +1804,26 @@ impl<'a> OpenDocumentsGraphLoader<'a> { &self, specifier: &'b ModuleSpecifier, ) -> SloppyImportsResolution<'b> { - SloppyImportsResolver::resolve_with_stat_sync(specifier, |path| { - if let Ok(specifier) = ModuleSpecifier::from_file_path(path) { - if self.open_docs.contains_key(&specifier) { - return Some(SloppyImportsFsEntry::File); - } - } - path.metadata().ok().and_then(|m| { - if m.is_file() { - Some(SloppyImportsFsEntry::File) - } else if m.is_dir() { - Some(SloppyImportsFsEntry::Dir) - } else { - None + SloppyImportsResolver::resolve_with_stat_sync( + specifier, + ResolutionMode::Types, + |path| { + if let Ok(specifier) = ModuleSpecifier::from_file_path(path) { + if self.open_docs.contains_key(&specifier) { + return Some(SloppyImportsFsEntry::File); + } } - }) - }) + path.metadata().ok().and_then(|m| { + if m.is_file() { + Some(SloppyImportsFsEntry::File) + } else if m.is_dir() { + Some(SloppyImportsFsEntry::Dir) + } else { + None + } + }) + }, + ) } } |