From 020eb7ab7fe12aa0a701a1604e2a0ea0bdb521a4 Mon Sep 17 00:00:00 2001 From: ~wispem-wantex Date: Wed, 14 Oct 2026 13:23:41 -0700 Subject: [PATCH] boolnames: make default whitelist include 'ok' --- .golangci.yaml | 3 --- {boolnames => pkg/boolnames}/analyzer.go | 9 ++++++++- {boolnames => pkg/boolnames}/analyzer_test.go | 2 +- {boolnames => pkg/boolnames}/plugin.go | 0 {boolnames => pkg/boolnames}/settings.go | 0 .../boolnames}/testdata/src/cases/boolnames.go | 4 ++-- .../boolnames}/testdata/src/casescustom/boolnames.go | 0 {ifinit => pkg/ifinit}/analyzer.go | 0 {ifinit => pkg/ifinit}/analyzer_test.go | 2 +- {ifinit => pkg/ifinit}/plugin.go | 0 {ifinit => pkg/ifinit}/testdata/src/cases/scopes.go | 0 .../ifinit}/testdata/src/cases/scopes.go.golden | 0 {ifinit => pkg/ifinit}/testdata/src/cases/structural.go | 0 .../ifinit}/testdata/src/cases/structural.go.golden | 0 root.go | 4 ++-- 15 files changed, 14 insertions(+), 10 deletions(-) rename {boolnames => pkg/boolnames}/analyzer.go (92%) rename {boolnames => pkg/boolnames}/analyzer_test.go (88%) rename {boolnames => pkg/boolnames}/plugin.go (100%) rename {boolnames => pkg/boolnames}/settings.go (100%) rename {boolnames => pkg/boolnames}/testdata/src/cases/boolnames.go (96%) rename {boolnames => pkg/boolnames}/testdata/src/casescustom/boolnames.go (100%) rename {ifinit => pkg/ifinit}/analyzer.go (100%) rename {ifinit => pkg/ifinit}/analyzer_test.go (78%) rename {ifinit => pkg/ifinit}/plugin.go (100%) rename {ifinit => pkg/ifinit}/testdata/src/cases/scopes.go (100%) rename {ifinit => pkg/ifinit}/testdata/src/cases/scopes.go.golden (100%) rename {ifinit => pkg/ifinit}/testdata/src/cases/structural.go (100%) rename {ifinit => pkg/ifinit}/testdata/src/cases/structural.go.golden (100%) diff --git a/.golangci.yaml b/.golangci.yaml index 9e12cb8..4ea3416 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -37,9 +37,6 @@ linters: boolnames: type: module description: boolean variables and functions should use "is", "has", "was" etc - settings: - whitelist: - - ok forbidigo: forbid: - pattern: ^sync\.Map$ diff --git a/boolnames/analyzer.go b/pkg/boolnames/analyzer.go similarity index 92% rename from boolnames/analyzer.go rename to pkg/boolnames/analyzer.go index c9f6f5d..6f07c39 100644 --- a/boolnames/analyzer.go +++ b/pkg/boolnames/analyzer.go @@ -13,11 +13,18 @@ import ( "golang.org/x/tools/go/ast/inspector" ) -var defaultBoolNamePrefixes = []string{"is", "has", "can", "was"} +var ( + defaultBoolNamePrefixes = []string{"is", "has", "can", "was"} + defaultBoolNameWhitelist = []string{"ok"} +) var Analyzer = NewAnalyzer(Settings{}) func NewAnalyzer(settings Settings) *analysis.Analyzer { + if len(settings.Whitelist) == 0 { + settings.Whitelist = defaultBoolNameWhitelist + } + if len(settings.AllowedPrefixes) == 0 { settings.AllowedPrefixes = defaultBoolNamePrefixes } diff --git a/boolnames/analyzer_test.go b/pkg/boolnames/analyzer_test.go similarity index 88% rename from boolnames/analyzer_test.go rename to pkg/boolnames/analyzer_test.go index 33da11f..16197c8 100644 --- a/boolnames/analyzer_test.go +++ b/pkg/boolnames/analyzer_test.go @@ -5,7 +5,7 @@ import ( "golang.org/x/tools/go/analysis/analysistest" - "git.offline-twitter.com/offline-labs/go-lint/boolnames" + "git.offline-twitter.com/offline-labs/go-lint/pkg/boolnames" ) func TestAnalyzer(t *testing.T) { diff --git a/boolnames/plugin.go b/pkg/boolnames/plugin.go similarity index 100% rename from boolnames/plugin.go rename to pkg/boolnames/plugin.go diff --git a/boolnames/settings.go b/pkg/boolnames/settings.go similarity index 100% rename from boolnames/settings.go rename to pkg/boolnames/settings.go diff --git a/boolnames/testdata/src/cases/boolnames.go b/pkg/boolnames/testdata/src/cases/boolnames.go similarity index 96% rename from boolnames/testdata/src/cases/boolnames.go rename to pkg/boolnames/testdata/src/cases/boolnames.go index 89af511..1d350ee 100644 --- a/boolnames/testdata/src/cases/boolnames.go +++ b/pkg/boolnames/testdata/src/cases/boolnames.go @@ -28,7 +28,7 @@ func ready() bool { return true } // want `boolean name "ready" must` func Find() (int, bool) { return 0, true } func FindPair() (bool, bool) { return true, false } -func consume(active bool, hasActive bool, predicate func() bool, canCheck func() bool) (ok bool) { // want `boolean name "consume" must` `boolean name "active" must` `boolean name "predicate" must` `boolean name "ok" must` +func consume(active bool, hasActive bool, predicate func() bool, canCheck func() bool) (ok bool) { // want `boolean name "consume" must` `boolean name "active" must` `boolean name "predicate" must` ready := true // want `boolean name "ready" must` isReady := true @@ -41,7 +41,7 @@ func consume(active bool, hasActive bool, predicate func() bool, canCheck func() checker := func() bool { return true } // want `boolean name "checker" must` hasChecker := func() bool { return true } - _ = func(active bool) (ok bool) { // want `boolean name "active" must` `boolean name "ok" must` + _ = func(active bool) (ok bool) { // want `boolean name "active" must` return ok } diff --git a/boolnames/testdata/src/casescustom/boolnames.go b/pkg/boolnames/testdata/src/casescustom/boolnames.go similarity index 100% rename from boolnames/testdata/src/casescustom/boolnames.go rename to pkg/boolnames/testdata/src/casescustom/boolnames.go diff --git a/ifinit/analyzer.go b/pkg/ifinit/analyzer.go similarity index 100% rename from ifinit/analyzer.go rename to pkg/ifinit/analyzer.go diff --git a/ifinit/analyzer_test.go b/pkg/ifinit/analyzer_test.go similarity index 78% rename from ifinit/analyzer_test.go rename to pkg/ifinit/analyzer_test.go index ee191ab..b750e05 100644 --- a/ifinit/analyzer_test.go +++ b/pkg/ifinit/analyzer_test.go @@ -5,7 +5,7 @@ import ( "golang.org/x/tools/go/analysis/analysistest" - "git.offline-twitter.com/offline-labs/go-lint/ifinit" + "git.offline-twitter.com/offline-labs/go-lint/pkg/ifinit" ) func TestAnalyzer(t *testing.T) { diff --git a/ifinit/plugin.go b/pkg/ifinit/plugin.go similarity index 100% rename from ifinit/plugin.go rename to pkg/ifinit/plugin.go diff --git a/ifinit/testdata/src/cases/scopes.go b/pkg/ifinit/testdata/src/cases/scopes.go similarity index 100% rename from ifinit/testdata/src/cases/scopes.go rename to pkg/ifinit/testdata/src/cases/scopes.go diff --git a/ifinit/testdata/src/cases/scopes.go.golden b/pkg/ifinit/testdata/src/cases/scopes.go.golden similarity index 100% rename from ifinit/testdata/src/cases/scopes.go.golden rename to pkg/ifinit/testdata/src/cases/scopes.go.golden diff --git a/ifinit/testdata/src/cases/structural.go b/pkg/ifinit/testdata/src/cases/structural.go similarity index 100% rename from ifinit/testdata/src/cases/structural.go rename to pkg/ifinit/testdata/src/cases/structural.go diff --git a/ifinit/testdata/src/cases/structural.go.golden b/pkg/ifinit/testdata/src/cases/structural.go.golden similarity index 100% rename from ifinit/testdata/src/cases/structural.go.golden rename to pkg/ifinit/testdata/src/cases/structural.go.golden diff --git a/root.go b/root.go index dff0412..6571c65 100644 --- a/root.go +++ b/root.go @@ -1,6 +1,6 @@ package customlint import ( - _ "git.offline-twitter.com/offline-labs/go-lint/boolnames" - _ "git.offline-twitter.com/offline-labs/go-lint/ifinit" + _ "git.offline-twitter.com/offline-labs/go-lint/pkg/boolnames" + _ "git.offline-twitter.com/offline-labs/go-lint/pkg/ifinit" )