summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs33
1 files changed, 32 insertions, 1 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 7834cab7f..72d1b1ad3 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -178,9 +178,35 @@ impl LanguageServer {
Ok::<(), AnyError>(())
};
- let (lint_res, ts_res) = tokio::join!(lint, ts);
+ let deps = async {
+ if enabled {
+ let diagnostics_collection = self.diagnostics.read().unwrap().clone();
+ let diagnostics = diagnostics::generate_dependency_diagnostics(
+ self.snapshot(),
+ diagnostics_collection,
+ )
+ .await?;
+ {
+ let mut diagnostics_collection = self.diagnostics.write().unwrap();
+ for (file_id, version, diagnostics) in diagnostics {
+ diagnostics_collection.set(
+ file_id,
+ DiagnosticSource::Deno,
+ version,
+ diagnostics,
+ );
+ }
+ }
+ self.publish_diagnostics().await?
+ };
+
+ Ok::<(), AnyError>(())
+ };
+
+ let (lint_res, ts_res, deps_res) = tokio::join!(lint, ts, deps);
lint_res?;
ts_res?;
+ deps_res?;
Ok(())
}
@@ -213,6 +239,11 @@ impl LanguageServer {
.diagnostics_for(file_id, DiagnosticSource::TypeScript)
.cloned(),
);
+ diagnostics.extend(
+ diagnostics_collection
+ .diagnostics_for(file_id, DiagnosticSource::Deno)
+ .cloned(),
+ );
}
let specifier = {
let file_cache = self.file_cache.read().unwrap();