internal/lsp: don't clear diagnostics on file close
Now that we run diagnostics on the entire workspace, we don't need to
hide diagnostics when a file has been closed.
Change-Id: I98d43820ff2ec2f9eb66bb4a1b6e59372ba7fc27
Reviewed-on: https://go-review.googlesource.com/c/tools/+/208237
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
diff --git a/internal/lsp/text_synchronization.go b/internal/lsp/text_synchronization.go
index 45635b1..c821a2e 100644
--- a/internal/lsp/text_synchronization.go
+++ b/internal/lsp/text_synchronization.go
@@ -14,7 +14,6 @@
"golang.org/x/tools/internal/lsp/source"
"golang.org/x/tools/internal/lsp/telemetry"
"golang.org/x/tools/internal/span"
- "golang.org/x/tools/internal/telemetry/log"
errors "golang.org/x/xerrors"
)
@@ -152,39 +151,6 @@
if err != nil {
return err
}
- if _, err := view.SetContent(ctx, uri, -1, nil); err != nil {
- return err
- }
- clear := []span.URI{uri} // by default, clear the closed URI
- defer func() {
- for _, uri := range clear {
- if err := s.publishDiagnostics(ctx, uri, []source.Diagnostic{}); err != nil {
- log.Error(ctx, "failed to clear diagnostics", err, telemetry.File)
- }
- }
- }()
- // If the current file was the only open file for its package,
- // clear out all diagnostics for the package.
- f, err := view.GetFile(ctx, uri)
- if err != nil {
- log.Error(ctx, "no file", err, telemetry.URI)
- return nil
- }
- cphs, err := view.Snapshot().PackageHandles(ctx, f)
- if err != nil {
- log.Error(ctx, "no CheckPackageHandles", err, telemetry.URI.Of(uri))
- return nil
- }
- for _, cph := range cphs {
- for _, ph := range cph.CompiledGoFiles() {
- // If other files from this package are open, don't clear.
- if s.session.IsOpen(ph.File().Identity().URI) {
- clear = nil
- return nil
- }
- clear = append(clear, ph.File().Identity().URI)
- }
- }
-
- return nil
+ _, err = view.SetContent(ctx, uri, -1, nil)
+ return err
}