blob: f9feded80be1815996da59e2248c62361fe0db99 [file] [log] [blame]
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build go1.15
// +build go1.15
package hooks
import (
"golang.org/x/tools/internal/lsp/source"
"honnef.co/go/tools/analysis/lint"
"honnef.co/go/tools/simple"
"honnef.co/go/tools/staticcheck"
"honnef.co/go/tools/stylecheck"
)
func updateAnalyzers(options *source.Options) {
add := func(analyzers []*lint.Analyzer, skip map[string]struct{}) {
for _, a := range analyzers {
if _, ok := skip[a.Analyzer.Name]; ok {
continue
}
enabled := !a.Doc.NonDefault
options.AddStaticcheckAnalyzer(a.Analyzer, enabled)
}
}
add(simple.Analyzers, nil)
add(staticcheck.Analyzers, map[string]struct{}{
// This check conflicts with the vet printf check (golang/go#34494).
"SA5009": {},
// This check relies on facts from dependencies, which
// we don't currently compute.
"SA5011": {},
})
add(stylecheck.Analyzers, nil)
}