internal/lsp: check if analysis enabled in convenience fixes
Change-Id: I49c7808ee07340cea0381f324b1fb113ec405213
Reviewed-on: https://go-review.googlesource.com/c/tools/+/241519
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/code_action.go b/internal/lsp/code_action.go
index 24151fa..75aeef7 100644
--- a/internal/lsp/code_action.go
+++ b/internal/lsp/code_action.go
@@ -356,6 +356,9 @@
func convenienceFixes(ctx context.Context, snapshot source.Snapshot, ph source.PackageHandle, uri span.URI, rng protocol.Range) ([]protocol.CodeAction, error) {
var analyzers []*analysis.Analyzer
for _, a := range snapshot.View().Options().ConvenienceAnalyzers {
+ if !a.Enabled(snapshot) {
+ continue
+ }
analyzers = append(analyzers, a.Analyzer)
}
diagnostics, err := snapshot.Analyze(ctx, ph.ID(), analyzers...)
diff --git a/internal/lsp/tests/util.go b/internal/lsp/tests/util.go
index 8310a08..9e6e63b 100644
--- a/internal/lsp/tests/util.go
+++ b/internal/lsp/tests/util.go
@@ -516,6 +516,11 @@
opts.UserEnabledAnalyses[a.Analyzer.Name] = true
}
}
+ for _, a := range opts.ConvenienceAnalyzers {
+ if !a.Enabled(snapshot) {
+ opts.UserEnabledAnalyses[a.Analyzer.Name] = true
+ }
+ }
}
func Diff(want, got string) string {