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" )