40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
package golinters
|
|
|
|
import (
|
|
"github.com/nunnatsa/ginkgolinter"
|
|
"github.com/nunnatsa/ginkgolinter/types"
|
|
"golang.org/x/tools/go/analysis"
|
|
|
|
"github.com/golangci/golangci-lint/pkg/config"
|
|
"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
|
|
)
|
|
|
|
func NewGinkgoLinter(settings *config.GinkgoLinterSettings) *goanalysis.Linter {
|
|
cfg := &types.Config{}
|
|
|
|
if settings != nil {
|
|
cfg = &types.Config{
|
|
SuppressLen: types.Boolean(settings.SuppressLenAssertion),
|
|
SuppressNil: types.Boolean(settings.SuppressNilAssertion),
|
|
SuppressErr: types.Boolean(settings.SuppressErrAssertion),
|
|
SuppressCompare: types.Boolean(settings.SuppressCompareAssertion),
|
|
SuppressAsync: types.Boolean(settings.SuppressAsyncAssertion),
|
|
ForbidFocus: types.Boolean(settings.ForbidFocusContainer),
|
|
SuppressTypeCompare: types.Boolean(settings.SuppressTypeCompareWarning),
|
|
AllowHaveLen0: types.Boolean(settings.AllowHaveLenZero),
|
|
ForceExpectTo: types.Boolean(settings.ForceExpectTo),
|
|
ValidateAsyncIntervals: types.Boolean(settings.ForbidSpecPollution),
|
|
ForbidSpecPollution: types.Boolean(settings.ValidateAsyncIntervals),
|
|
}
|
|
}
|
|
|
|
a := ginkgolinter.NewAnalyzerWithConfig(cfg)
|
|
|
|
return goanalysis.NewLinter(
|
|
a.Name,
|
|
"enforces standards of using ginkgo and gomega",
|
|
[]*analysis.Analyzer{a},
|
|
nil,
|
|
).WithLoadMode(goanalysis.LoadModeTypesInfo)
|
|
}
|