summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-06-03 21:13:53 +1000
committerGitHub <noreply@github.com>2021-06-03 21:13:53 +1000
commit844a1317ec63e5ed5019e36a52dc3e7d3abfab8b (patch)
tree62dcb5345c537fba31c499d59d6185ec82fd488d /cli/lsp/language_server.rs
parent5a14827f9f0afd43c9cfc32fb0cb1844477e0e4c (diff)
fix(#10775): diagnostics update on dependency changes (#10817)
Fixes #10775
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 20d5c1ee7..cd8298573 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -627,6 +627,10 @@ impl Inner {
if self.documents.is_diagnosable(&specifier) {
self.analyze_dependencies(&specifier, &params.text_document.text);
+ self
+ .diagnostics_server
+ .invalidate(self.documents.dependents(&specifier))
+ .await;
if let Err(err) = self.diagnostics_server.update() {
error!("{}", err);
}
@@ -645,6 +649,10 @@ impl Inner {
Ok(Some(source)) => {
if self.documents.is_diagnosable(&specifier) {
self.analyze_dependencies(&specifier, &source);
+ self
+ .diagnostics_server
+ .invalidate(self.documents.dependents(&specifier))
+ .await;
if let Err(err) = self.diagnostics_server.update() {
error!("{}", err);
}
@@ -2511,7 +2519,7 @@ impl Inner {
if let Some(source) = self.documents.content(&referrer).unwrap() {
self.analyze_dependencies(&referrer, &source);
}
- self.diagnostics_server.invalidate(&referrer).await;
+ self.diagnostics_server.invalidate(vec![referrer]).await;
}
self.diagnostics_server.update().map_err(|err| {