From 60455b502b0b03f83f18c161a6da4f8f4f018df7 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 1 Feb 2021 23:13:53 +0100 Subject: [PATCH] fix: add missing ifshort configuration. (#1672) --- pkg/config/config.go | 4 ++++ pkg/golinters/ifshort.go | 15 +++++++++++++-- pkg/lint/lintersdb/manager.go | 4 +++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index af177292..9246a522 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -485,6 +485,10 @@ var defaultLintersSettings = LintersSettings{ ErrorLint: ErrorLintSettings{ Errorf: true, }, + Ifshort: IfshortSettings{ + MaxDeclLines: 1, + MaxDeclChars: 30, + }, Predeclared: PredeclaredSettings{ Ignore: "", Qualified: false, diff --git a/pkg/golinters/ifshort.go b/pkg/golinters/ifshort.go index cb54a2fc..c26f08e4 100644 --- a/pkg/golinters/ifshort.go +++ b/pkg/golinters/ifshort.go @@ -4,14 +4,25 @@ import ( "github.com/esimonov/ifshort/pkg/analyzer" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" ) -func NewIfshort() *goanalysis.Linter { +func NewIfshort(settings *config.IfshortSettings) *goanalysis.Linter { + var cfg map[string]map[string]interface{} + if settings != nil { + cfg = map[string]map[string]interface{}{ + analyzer.Analyzer.Name: { + "max-decl-lines": settings.MaxDeclLines, + "max-decl-chars": settings.MaxDeclChars, + }, + } + } + return goanalysis.NewLinter( "ifshort", "Checks that your code uses short syntax for if-statements whenever possible", []*analysis.Analyzer{analyzer.Analyzer}, - nil, + cfg, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index fb399617..b8f4ed88 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -95,6 +95,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { var errorlintCfg *config.ErrorLintSettings var thelperCfg *config.ThelperSettings var predeclaredCfg *config.PredeclaredSettings + var ifshortCfg *config.IfshortSettings if m.cfg != nil { govetCfg = &m.cfg.LintersSettings.Govet testpackageCfg = &m.cfg.LintersSettings.Testpackage @@ -102,6 +103,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { errorlintCfg = &m.cfg.LintersSettings.ErrorLint thelperCfg = &m.cfg.LintersSettings.Thelper predeclaredCfg = &m.cfg.LintersSettings.Predeclared + ifshortCfg = &m.cfg.LintersSettings.Ifshort } const megacheckName = "megacheck" lcs := []*linter.Config{ @@ -344,7 +346,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewForbidigo()). WithPresets(linter.PresetStyle). WithURL("https://github.com/ashanbrown/forbidigo"), - linter.NewConfig(golinters.NewIfshort()). + linter.NewConfig(golinters.NewIfshort(ifshortCfg)). WithPresets(linter.PresetStyle). WithURL("https://github.com/esimonov/ifshort"), linter.NewConfig(golinters.NewPredeclared(predeclaredCfg)).