summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2023-10-12 15:37:56 +0100
committerGitHub <noreply@github.com>2023-10-12 15:37:56 +0100
commiteaeb10cee123b8184148c957151be226fb865bd2 (patch)
treedaa65e9db04ff6b18f7d8f208687249f08d5c76c /cli/lsp/language_server.rs
parentcee221109a61406004817b09361bf3674ab06cde (diff)
perf(lsp): fix redundant file reads (#20802)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index b19b00b4a..485eef938 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -1373,18 +1373,17 @@ impl Inner {
let specifier = self
.url_map
.normalize_url(&params.text_document.uri, LspUrlKind::File);
-
- if let Err(err) = self.documents.close(&specifier) {
- error!("{}", err);
- }
if self.is_diagnosable(&specifier) {
self.refresh_npm_specifiers().await;
let mut specifiers = self.documents.dependents(&specifier);
- specifiers.push(specifier);
+ specifiers.push(specifier.clone());
self.diagnostics_server.invalidate(&specifiers);
self.send_diagnostics_update();
self.send_testing_update();
}
+ if let Err(err) = self.documents.close(&specifier) {
+ error!("{}", err);
+ }
self.performance.measure(mark);
}
@@ -3214,8 +3213,9 @@ impl tower_lsp::LanguageServer for LanguageServer {
async fn did_save(&self, params: DidSaveTextDocumentParams) {
let uri = &params.text_document.uri;
{
- let inner = self.0.read().await;
+ let mut inner = self.0.write().await;
let specifier = inner.url_map.normalize_url(uri, LspUrlKind::File);
+ inner.documents.save(&specifier);
if !inner.config.workspace_settings().cache_on_save
|| !inner.config.specifier_enabled(&specifier)
|| !inner.diagnostics_state.has_no_cache_diagnostics(&specifier)