mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
refactor(lsp): minor improvements to handling closed documents (#11518)
Ref #10897
This commit is contained in:
parent
091a26104b
commit
c6f4e41529
2 changed files with 22 additions and 7 deletions
|
@ -771,15 +771,21 @@ impl Inner {
|
|||
async fn did_close(&mut self, params: DidCloseTextDocumentParams) {
|
||||
let mark = self.performance.mark("did_close", Some(¶ms));
|
||||
if params.text_document.uri.scheme() == "deno" {
|
||||
// we can ignore virtual text documents opening, as they don't need to
|
||||
// we can ignore virtual text documents closing, as they don't need to
|
||||
// be tracked in memory, as they are static assets that won't change
|
||||
// already managed by the language service
|
||||
return;
|
||||
}
|
||||
let specifier = self.url_map.normalize_url(¶ms.text_document.uri);
|
||||
self.documents.close(&specifier);
|
||||
let is_diagnosable = self.documents.is_diagnosable(&specifier);
|
||||
|
||||
if self.documents.is_diagnosable(&specifier) {
|
||||
if is_diagnosable {
|
||||
let mut specifiers = self.documents.dependents(&specifier);
|
||||
specifiers.push(specifier.clone());
|
||||
self.diagnostics_server.invalidate(specifiers).await;
|
||||
}
|
||||
self.documents.close(&specifier);
|
||||
if is_diagnosable {
|
||||
if let Err(err) = self.diagnostics_server.update() {
|
||||
error!("{}", err);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue