diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2023-10-12 15:37:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-12 15:37:56 +0100 |
commit | eaeb10cee123b8184148c957151be226fb865bd2 (patch) | |
tree | daa65e9db04ff6b18f7d8f208687249f08d5c76c /cli/lsp/language_server.rs | |
parent | cee221109a61406004817b09361bf3674ab06cde (diff) |
perf(lsp): fix redundant file reads (#20802)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 12 |
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(¶ms.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 = ¶ms.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) |