diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 2a8d145e2179..5de829806041 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -398,10 +398,11 @@ formatters: extra-rules: true goimports: - # A comma-separated list of prefixes, which, if set, checks import paths + # A list of prefixes, which, if set, checks import paths # with the given prefixes are grouped after 3rd-party packages. - # Default: "" - local-prefixes: github.com/org/project + # Default: [] + local-prefixes: + - github.com/org/project golines: # Target maximum line length. @@ -2356,9 +2357,11 @@ linters-settings: for-loops: true predeclared: - # Comma-separated list of predeclared identifiers to not report on. - # Default: "" - ignore: "new,int" + # List of predeclared identifiers to not report on. + # Default: [] + ignore: + - new + - int # Include method names and field names in checks. # Default: false qualified-name: true diff --git a/.golangci.yml b/.golangci.yml index 4102ea282e88..06bab229429c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -114,7 +114,8 @@ formatters: - pattern: 'interface{}' replacement: 'any' goimports: - local-prefixes: github.com/golangci/golangci-lint + local-prefixes: + - github.com/golangci/golangci-lint linters-settings: depguard: diff --git a/jsonschema/golangci.next.jsonschema.json b/jsonschema/golangci.next.jsonschema.json index 25b765c289c8..4891a5514633 100644 --- a/jsonschema/golangci.next.jsonschema.json +++ b/jsonschema/golangci.next.jsonschema.json @@ -1555,9 +1555,11 @@ "additionalProperties": false, "properties": { "local-prefixes": { - "description": "Put imports beginning with prefix after 3rd-party packages. It is a comma-separated list of prefixes.", - "type": "string", - "examples": ["github.com/org/project"] + "description": "Put imports beginning with prefix after 3rd-party packages. It is a list of prefixes.", + "type": "array", + "items": { + "type": "string" + } } } }, @@ -2413,8 +2415,11 @@ "additionalProperties": false, "properties": { "ignore": { - "description": "Comma-separated list of predeclared identifiers to not report on.", - "type": "string" + "description": "List of predeclared identifiers to not report on.", + "type": "array", + "items": { + "type": "string" + } }, "qualified-name": { "description": "Include method names and field names in checks.", diff --git a/pkg/config/formatters_settings.go b/pkg/config/formatters_settings.go index 51c16da660fd..40f0f1dbbdfc 100644 --- a/pkg/config/formatters_settings.go +++ b/pkg/config/formatters_settings.go @@ -51,7 +51,7 @@ type GoFumptSettings struct { } type GoImportsSettings struct { - LocalPrefixes string `mapstructure:"local-prefixes"` + LocalPrefixes []string `mapstructure:"local-prefixes"` } type GoLinesSettings struct { diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index bc11207bcb66..359a62bb488c 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -128,7 +128,6 @@ var defaultLintersSettings = LintersSettings{ ForLoops: false, }, Predeclared: PredeclaredSettings{ - Ignore: "", Qualified: false, }, SlogLint: SlogLintSettings{ @@ -715,8 +714,8 @@ type PreallocSettings struct { } type PredeclaredSettings struct { - Ignore string `mapstructure:"ignore"` - Qualified bool `mapstructure:"qualified-name"` + Ignore []string `mapstructure:"ignore"` + Qualified bool `mapstructure:"qualified-name"` } type PromlinterSettings struct { diff --git a/pkg/goformatters/goimports/goimports.go b/pkg/goformatters/goimports/goimports.go index fa0f1fc4f36e..b1c9dff5d10a 100644 --- a/pkg/goformatters/goimports/goimports.go +++ b/pkg/goformatters/goimports/goimports.go @@ -1,6 +1,8 @@ package goimports import ( + "strings" + "golang.org/x/tools/imports" "github.com/golangci/golangci-lint/pkg/config" @@ -12,7 +14,7 @@ type Formatter struct{} func New(settings *config.GoImportsSettings) *Formatter { if settings != nil { - imports.LocalPrefix = settings.LocalPrefixes + imports.LocalPrefix = strings.Join(settings.LocalPrefixes, ",") } return &Formatter{} diff --git a/pkg/golinters/goimports/testdata/goimports_local.yml b/pkg/golinters/goimports/testdata/goimports_local.yml index b5704a8233c0..b39cc68f879a 100644 --- a/pkg/golinters/goimports/testdata/goimports_local.yml +++ b/pkg/golinters/goimports/testdata/goimports_local.yml @@ -5,4 +5,5 @@ formatters: - goimports settings: goimports: - local-prefixes: github.com/golangci/golangci-lint + local-prefixes: + - github.com/golangci/golangci-lint diff --git a/pkg/golinters/predeclared/predeclared.go b/pkg/golinters/predeclared/predeclared.go index b8d189fd557e..61d6b1b11c93 100644 --- a/pkg/golinters/predeclared/predeclared.go +++ b/pkg/golinters/predeclared/predeclared.go @@ -1,6 +1,8 @@ package predeclared import ( + "strings" + "github.com/nishanths/predeclared/passes/predeclared" "golang.org/x/tools/go/analysis" @@ -15,7 +17,7 @@ func New(settings *config.PredeclaredSettings) *goanalysis.Linter { if settings != nil { cfg = map[string]map[string]any{ a.Name: { - predeclared.IgnoreFlag: settings.Ignore, + predeclared.IgnoreFlag: strings.Join(settings.Ignore, ","), predeclared.QualifiedFlag: settings.Qualified, }, } diff --git a/pkg/golinters/predeclared/testdata/predeclared_custom.yml b/pkg/golinters/predeclared/testdata/predeclared_custom.yml index 60510de4b473..a7d42f583fb8 100644 --- a/pkg/golinters/predeclared/testdata/predeclared_custom.yml +++ b/pkg/golinters/predeclared/testdata/predeclared_custom.yml @@ -2,5 +2,7 @@ version: "2" linters-settings: predeclared: - ignore: "real,recover" + ignore: + - real + - recover qualified-name: true