summaryrefslogtreecommitdiff
path: root/cli/lsp/analysis.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-04-26 21:39:33 +0100
committerGitHub <noreply@github.com>2024-04-26 21:39:33 +0100
commitf8ddcc4f78bb0de074ce77c266fac5453a08f496 (patch)
treeb7e1f2aed5752b4034ebb6b513741378dd3547e6 /cli/lsp/analysis.rs
parentc5193556242117737fc3ba95ee3692b7831ca04a (diff)
refactor(lsp): unify resolver types into LspResolver (#23514)
Diffstat (limited to 'cli/lsp/analysis.rs')
-rw-r--r--cli/lsp/analysis.rs23
1 files changed, 8 insertions, 15 deletions
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 9ea8d710e..63d39ad6e 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -4,11 +4,10 @@ use super::diagnostics::DenoDiagnostic;
use super::diagnostics::DiagnosticSource;
use super::documents::Documents;
use super::language_server;
+use super::resolver::LspResolver;
use super::tsc;
use crate::args::jsr_url;
-use crate::npm::CliNpmResolver;
-use crate::resolver::CliNodeResolver;
use crate::tools::lint::create_linter;
use deno_runtime::fs_util::specifier_to_file_path;
@@ -27,7 +26,6 @@ use deno_lint::diagnostic::LintDiagnostic;
use deno_lint::rules::LintRule;
use deno_runtime::deno_node::NpmResolver;
use deno_runtime::deno_node::PathClean;
-use deno_runtime::permissions::PermissionsContainer;
use deno_semver::jsr::JsrPackageNvReference;
use deno_semver::jsr::JsrPackageReqReference;
use deno_semver::npm::NpmPackageReqReference;
@@ -217,22 +215,19 @@ fn code_as_string(code: &Option<lsp::NumberOrString>) -> String {
pub struct TsResponseImportMapper<'a> {
documents: &'a Documents,
maybe_import_map: Option<&'a ImportMap>,
- node_resolver: Option<&'a CliNodeResolver>,
- npm_resolver: Option<&'a dyn CliNpmResolver>,
+ resolver: &'a LspResolver,
}
impl<'a> TsResponseImportMapper<'a> {
pub fn new(
documents: &'a Documents,
maybe_import_map: Option<&'a ImportMap>,
- node_resolver: Option<&'a CliNodeResolver>,
- npm_resolver: Option<&'a dyn CliNpmResolver>,
+ resolver: &'a LspResolver,
) -> Self {
Self {
documents,
maybe_import_map,
- node_resolver,
- npm_resolver,
+ resolver,
}
}
@@ -304,9 +299,7 @@ impl<'a> TsResponseImportMapper<'a> {
return Some(spec_str);
}
- if let Some(npm_resolver) =
- self.npm_resolver.as_ref().and_then(|r| r.as_managed())
- {
+ if let Some(npm_resolver) = self.resolver.maybe_managed_npm_resolver() {
if npm_resolver.in_npm_package(specifier) {
if let Ok(Some(pkg_id)) =
npm_resolver.resolve_pkg_id_from_specifier(specifier)
@@ -370,9 +363,9 @@ impl<'a> TsResponseImportMapper<'a> {
&self,
specifier: &ModuleSpecifier,
) -> Option<String> {
- let node_resolver = self.node_resolver?;
- let package_json = node_resolver
- .get_closest_package_json(specifier, &PermissionsContainer::allow_all())
+ let package_json = self
+ .resolver
+ .get_closest_package_json(specifier)
.ok()
.flatten()?;
let root_folder = package_json.path.parent()?;