From 1b7b77eaf0755c07a8b4311fb00accb88ad57e74 Mon Sep 17 00:00:00 2001 From: ddfrolov Date: Mon, 21 Oct 2024 23:11:36 +0400 Subject: [PATCH 01/14] Add new filen linter --- .golangci.next.reference.yml | 13 +++++++++++ .golangci.yml | 5 +++++ go.mod | 3 ++- go.sum | 2 ++ pkg/config/linters_settings.go | 12 ++++++++++ pkg/golinters/filen/filen.go | 23 +++++++++++++++++++ pkg/golinters/filen/filen_test.go | 10 +++++++++ pkg/golinters/filen/testdata/filen.go | 32 +++++++++++++++++++++++++++ pkg/lint/lintersdb/builder_linter.go | 7 ++++++ 9 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 pkg/golinters/filen/filen.go create mode 100644 pkg/golinters/filen/filen_test.go create mode 100644 pkg/golinters/filen/testdata/filen.go diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 5e9afbb1eb74..633dd06d53ae 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -39,6 +39,7 @@ linters: - forbidigo - forcetypeassert - funlen + - filen - gci - ginkgolinter - gocheckcompilerdirectives @@ -155,6 +156,7 @@ linters: - forbidigo - forcetypeassert - funlen + - filen - gci - ginkgolinter - gocheckcompilerdirectives @@ -577,6 +579,17 @@ linters-settings: # Default false ignore-comments: true + filen: + # Min number of lines in a file setting + # Default: 5 + min-lines-num: 5 + # Max number of lines in a file setting + # Default: 5 + max-lines-num: 500 + # Ignore comments when counting lines. + # Default false + ignore-comments: false + gci: # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). diff --git a/.golangci.yml b/.golangci.yml index 27061841158c..afbdc3e06b4f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -25,6 +25,7 @@ linters: - errcheck - errorlint - funlen + - filen - gocheckcompilerdirectives - gochecknoinits - gochecknoinits @@ -76,6 +77,10 @@ linters-settings: funlen: lines: -1 # the number of lines (code + empty lines) is not a right metric and leads to code without empty line or one-liner. statements: 50 + filen: + min-lines-num: 5 + max-lines-num: 500 + ignore-comments: false goconst: min-len: 2 min-occurrences: 3 diff --git a/go.mod b/go.mod index 6e48abaddeaf..c5d4fbfea638 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/golangci/golangci-lint -go 1.22.1 +go 1.23.2 require ( 4d63.com/gocheckcompilerdirectives v1.2.1 @@ -12,6 +12,7 @@ require ( github.com/Antonboom/testifylint v1.5.0 github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c github.com/Crocmagnon/fatcontext v0.5.2 + github.com/DanilXO/filen v0.0.2 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 github.com/OpenPeeDeeP/depguard/v2 v2.2.0 diff --git a/go.sum b/go.sum index 61ea9d20f80f..885618b9cc10 100644 --- a/go.sum +++ b/go.sum @@ -51,6 +51,8 @@ github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Crocmagnon/fatcontext v0.5.2 h1:vhSEg8Gqng8awhPju2w7MKHqMlg4/NI+gSDHtR3xgwA= github.com/Crocmagnon/fatcontext v0.5.2/go.mod h1:87XhRMaInHP44Q7Tlc7jkgKKB7kZAOPiDkFMdKCC+74= +github.com/DanilXO/filen v0.0.2 h1:cajId7tBxTuzwFBe68T92HHKpkkfLKNPnrYY1VIwQMI= +github.com/DanilXO/filen v0.0.2/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 3760d6a40de8..4239496a1a17 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -197,6 +197,11 @@ var defaultLintersSettings = LintersSettings{ ErrorVariableNames: []string{"err"}, ForceExclusiveShortDeclarations: false, }, + Filen: FilenSettings{ + MinLinesNum: 5, + MaxLinesNum: 500, + IgnoreComments: false, + }, } type LintersSettings struct { @@ -282,6 +287,7 @@ type LintersSettings struct { Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings + Filen FilenSettings Custom map[string]CustomLinterSettings } @@ -1013,6 +1019,12 @@ type WSLSettings struct { ForceExclusiveShortDeclarations bool `mapstructure:"force-short-decl-cuddling"` } +type FilenSettings struct { + MaxLinesNum int `mapstructure:"min-lines-num"` + MinLinesNum int `mapstructure:"max-lines-num"` + IgnoreComments bool `mapstructure:"ignore-comments"` +} + // CustomLinterSettings encapsulates the meta-data of a private linter. type CustomLinterSettings struct { // Type plugin type. diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go new file mode 100644 index 000000000000..77f8c78685da --- /dev/null +++ b/pkg/golinters/filen/filen.go @@ -0,0 +1,23 @@ +package filen + +import ( + "github.com/DanilXO/filen/pgk/filen" + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/goanalysis" + "golang.org/x/tools/go/analysis" +) + +func New(settings *config.FilenSettings) *goanalysis.Linter { + a := filen.NewAnalyzer(&filen.Runner{ + MaxLinesNum: settings.MaxLinesNum, + MinLinesNum: settings.MinLinesNum, + IgnoreComments: settings.IgnoreComments, + }) + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) +} diff --git a/pkg/golinters/filen/filen_test.go b/pkg/golinters/filen/filen_test.go new file mode 100644 index 000000000000..54ba84ccaf0b --- /dev/null +++ b/pkg/golinters/filen/filen_test.go @@ -0,0 +1,10 @@ +package filen + +import ( + "github.com/golangci/golangci-lint/test/testshared/integration" + "testing" +) + +func TestFromTestdata(t *testing.T) { + integration.RunTestdata(t) +} diff --git a/pkg/golinters/filen/testdata/filen.go b/pkg/golinters/filen/testdata/filen.go new file mode 100644 index 000000000000..efd6beea1265 --- /dev/null +++ b/pkg/golinters/filen/testdata/filen.go @@ -0,0 +1,32 @@ +// Package samples - is the code for functional tests +package samples + +// foo - is test function +func foo() string { + return "bar" +} + +// foo1 - is test function +func foo1() string { + return "bar1" +} + +// foo2 - is test function +func foo2() string { + return "bar2" +} + +// foo3 - is test function +func foo3() string { + return "bar3" +} + +// foo4 - is test function +func foo4() string { + return "bar4" +} + +// foo5 - is test function +func foo5() string { + return "bar5" +} diff --git a/pkg/lint/lintersdb/builder_linter.go b/pkg/lint/lintersdb/builder_linter.go index 3db2ca393cfc..2e5d5a0abcd3 100644 --- a/pkg/lint/lintersdb/builder_linter.go +++ b/pkg/lint/lintersdb/builder_linter.go @@ -28,6 +28,7 @@ import ( "github.com/golangci/golangci-lint/pkg/golinters/exhaustruct" "github.com/golangci/golangci-lint/pkg/golinters/exportloopref" "github.com/golangci/golangci-lint/pkg/golinters/fatcontext" + "github.com/golangci/golangci-lint/pkg/golinters/filen" "github.com/golangci/golangci-lint/pkg/golinters/forbidigo" "github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert" "github.com/golangci/golangci-lint/pkg/golinters/funlen" @@ -853,5 +854,11 @@ func (LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) { WithPresets(linter.PresetStyle). WithAutoFix(). WithURL("https://github.com/golangci/golangci-lint/tree/master/pkg/golinters/nolintlint/internal"), + + linter.NewConfig(filen.New(&cfg.LintersSettings.Filen)). + WithSince("v1.62.0"). + WithPresets(linter.PresetComplexity). + WithLoadForGoAnalysis(). + WithURL("https://github.com/DanilXO/filen"), }, nil } From 26495170ebc5a0f9846eaf9014de92554d2427da Mon Sep 17 00:00:00 2001 From: ddfrolov Date: Mon, 21 Oct 2024 23:45:46 +0400 Subject: [PATCH 02/14] Refactoring --- .golangci.next.reference.yml | 26 +++++++++++++------------- go.mod | 2 +- go.sum | 2 ++ pkg/lint/lintersdb/builder_linter.go | 12 ++++++------ 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 633dd06d53ae..7af93d8329a9 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -36,10 +36,10 @@ linters: - exhaustruct - exportloopref - fatcontext + - filen - forbidigo - forcetypeassert - funlen - - filen - gci - ginkgolinter - gocheckcompilerdirectives @@ -153,10 +153,10 @@ linters: - exhaustruct - exportloopref - fatcontext + - filen - forbidigo - forcetypeassert - funlen - - filen - gci - ginkgolinter - gocheckcompilerdirectives @@ -536,6 +536,17 @@ linters-settings: exclude: - '.+/cobra\.Command$' + filen: + # Min number of lines in a file setting + # Default: 5 + min-lines-num: 5 + # Max number of lines in a file setting + # Default: 5 + max-lines-num: 500 + # Ignore comments when counting lines. + # Default false + ignore-comments: false + forbidigo: # Forbid the following identifiers (list of regexp). # Default: ["^(fmt\\.Print(|f|ln)|print|println)$"] @@ -579,17 +590,6 @@ linters-settings: # Default false ignore-comments: true - filen: - # Min number of lines in a file setting - # Default: 5 - min-lines-num: 5 - # Max number of lines in a file setting - # Default: 5 - max-lines-num: 500 - # Ignore comments when counting lines. - # Default false - ignore-comments: false - gci: # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). diff --git a/go.mod b/go.mod index c5d4fbfea638..7538aac92f69 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/Antonboom/testifylint v1.5.0 github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c github.com/Crocmagnon/fatcontext v0.5.2 - github.com/DanilXO/filen v0.0.2 + github.com/DanilXO/filen v0.1.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 github.com/OpenPeeDeeP/depguard/v2 v2.2.0 diff --git a/go.sum b/go.sum index 885618b9cc10..ef0a4b6cd967 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,8 @@ github.com/Crocmagnon/fatcontext v0.5.2 h1:vhSEg8Gqng8awhPju2w7MKHqMlg4/NI+gSDHt github.com/Crocmagnon/fatcontext v0.5.2/go.mod h1:87XhRMaInHP44Q7Tlc7jkgKKB7kZAOPiDkFMdKCC+74= github.com/DanilXO/filen v0.0.2 h1:cajId7tBxTuzwFBe68T92HHKpkkfLKNPnrYY1VIwQMI= github.com/DanilXO/filen v0.0.2/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= +github.com/DanilXO/filen v0.1.0 h1:3fND5TD+dWg6XKnV5IaVto5jcZuRRq1suYUC2IgoCT8= +github.com/DanilXO/filen v0.1.0/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= diff --git a/pkg/lint/lintersdb/builder_linter.go b/pkg/lint/lintersdb/builder_linter.go index 2e5d5a0abcd3..5968e7d1ee0c 100644 --- a/pkg/lint/lintersdb/builder_linter.go +++ b/pkg/lint/lintersdb/builder_linter.go @@ -284,6 +284,12 @@ func (LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) { WithURL("https://github.com/kyoh86/exportloopref"). DeprecatedWarning("Since Go1.22 (loopvar) this linter is no longer relevant.", "v1.60.2", "copyloopvar"), + linter.NewConfig(filen.New(&cfg.LintersSettings.Filen)). + WithSince("v1.62.0"). + WithPresets(linter.PresetComplexity). + WithLoadForGoAnalysis(). + WithURL("https://github.com/DanilXO/filen"), + linter.NewConfig(forbidigo.New(&cfg.LintersSettings.Forbidigo)). WithSince("v1.34.0"). WithPresets(linter.PresetStyle). @@ -854,11 +860,5 @@ func (LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) { WithPresets(linter.PresetStyle). WithAutoFix(). WithURL("https://github.com/golangci/golangci-lint/tree/master/pkg/golinters/nolintlint/internal"), - - linter.NewConfig(filen.New(&cfg.LintersSettings.Filen)). - WithSince("v1.62.0"). - WithPresets(linter.PresetComplexity). - WithLoadForGoAnalysis(). - WithURL("https://github.com/DanilXO/filen"), }, nil } From ec7301ab47916b051a2749e11077fcd41067bf2d Mon Sep 17 00:00:00 2001 From: ddfrolov Date: Thu, 24 Oct 2024 11:17:58 +0400 Subject: [PATCH 03/14] fix: requirements to merge --- .golangci.next.reference.yml | 14 +++++++------- go.mod | 4 ++-- go.sum | 2 ++ pkg/config/linters_settings.go | 2 +- pkg/golinters/filen/filen.go | 2 +- .../{filen_test.go => filen_integration_test.go} | 0 6 files changed, 13 insertions(+), 11 deletions(-) rename pkg/golinters/filen/{filen_test.go => filen_integration_test.go} (100%) diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 7af93d8329a9..9cb8fcca847d 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -537,15 +537,15 @@ linters-settings: - '.+/cobra\.Command$' filen: - # Min number of lines in a file setting - # Default: 5 - min-lines-num: 5 - # Max number of lines in a file setting - # Default: 5 - max-lines-num: 500 # Ignore comments when counting lines. # Default false - ignore-comments: false + ignore-comments: true + # Max number of lines in a file setting + # Default: 500 + max-lines-num: 1000 + # Min number of lines in a file setting + # Default: 5 + min-lines-num: 1 forbidigo: # Forbid the following identifiers (list of regexp). diff --git a/go.mod b/go.mod index 7538aac92f69..711eddfac486 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/golangci/golangci-lint -go 1.23.2 +go 1.22.1 require ( 4d63.com/gocheckcompilerdirectives v1.2.1 @@ -12,7 +12,7 @@ require ( github.com/Antonboom/testifylint v1.5.0 github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c github.com/Crocmagnon/fatcontext v0.5.2 - github.com/DanilXO/filen v0.1.0 + github.com/DanilXO/filen v0.2.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 github.com/OpenPeeDeeP/depguard/v2 v2.2.0 diff --git a/go.sum b/go.sum index ef0a4b6cd967..c0f47db58e6f 100644 --- a/go.sum +++ b/go.sum @@ -55,6 +55,8 @@ github.com/DanilXO/filen v0.0.2 h1:cajId7tBxTuzwFBe68T92HHKpkkfLKNPnrYY1VIwQMI= github.com/DanilXO/filen v0.0.2/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= github.com/DanilXO/filen v0.1.0 h1:3fND5TD+dWg6XKnV5IaVto5jcZuRRq1suYUC2IgoCT8= github.com/DanilXO/filen v0.1.0/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= +github.com/DanilXO/filen v0.2.0 h1:TaZURxwzP2a9mPcbuMbku8s/z2z/RABCDt8peG6KkT8= +github.com/DanilXO/filen v0.2.0/go.mod h1:X/vdsz338y2Dqkha+ATQJIcPvqpBy7kkLgm7t/Z943s= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 4239496a1a17..0caf01b21b34 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -1020,9 +1020,9 @@ type WSLSettings struct { } type FilenSettings struct { + IgnoreComments bool `mapstructure:"ignore-comments"` MaxLinesNum int `mapstructure:"min-lines-num"` MinLinesNum int `mapstructure:"max-lines-num"` - IgnoreComments bool `mapstructure:"ignore-comments"` } // CustomLinterSettings encapsulates the meta-data of a private linter. diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go index 77f8c78685da..469b2fb649f7 100644 --- a/pkg/golinters/filen/filen.go +++ b/pkg/golinters/filen/filen.go @@ -1,7 +1,7 @@ package filen import ( - "github.com/DanilXO/filen/pgk/filen" + "github.com/DanilXO/filen/pkg/filen" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/goanalysis" "golang.org/x/tools/go/analysis" diff --git a/pkg/golinters/filen/filen_test.go b/pkg/golinters/filen/filen_integration_test.go similarity index 100% rename from pkg/golinters/filen/filen_test.go rename to pkg/golinters/filen/filen_integration_test.go From 83cf89e03ffdb3fd309489279bee55b882dd5eb6 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:39:49 +0200 Subject: [PATCH 04/14] review: revert .golangci.yml changes --- .golangci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index afbdc3e06b4f..27061841158c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -25,7 +25,6 @@ linters: - errcheck - errorlint - funlen - - filen - gocheckcompilerdirectives - gochecknoinits - gochecknoinits @@ -77,10 +76,6 @@ linters-settings: funlen: lines: -1 # the number of lines (code + empty lines) is not a right metric and leads to code without empty line or one-liner. statements: 50 - filen: - min-lines-num: 5 - max-lines-num: 500 - ignore-comments: false goconst: min-len: 2 min-occurrences: 3 From 3df03fb0fe294f6c3eac21ce8659d85e077340a6 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:40:20 +0200 Subject: [PATCH 05/14] review: fix go.sum --- go.sum | 4 ---- 1 file changed, 4 deletions(-) diff --git a/go.sum b/go.sum index c0f47db58e6f..7976d4040247 100644 --- a/go.sum +++ b/go.sum @@ -51,10 +51,6 @@ github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Crocmagnon/fatcontext v0.5.2 h1:vhSEg8Gqng8awhPju2w7MKHqMlg4/NI+gSDHtR3xgwA= github.com/Crocmagnon/fatcontext v0.5.2/go.mod h1:87XhRMaInHP44Q7Tlc7jkgKKB7kZAOPiDkFMdKCC+74= -github.com/DanilXO/filen v0.0.2 h1:cajId7tBxTuzwFBe68T92HHKpkkfLKNPnrYY1VIwQMI= -github.com/DanilXO/filen v0.0.2/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= -github.com/DanilXO/filen v0.1.0 h1:3fND5TD+dWg6XKnV5IaVto5jcZuRRq1suYUC2IgoCT8= -github.com/DanilXO/filen v0.1.0/go.mod h1:+5CEggayiUKiLoK7lUi98X1oSuwX7ixyPx2BvObUavw= github.com/DanilXO/filen v0.2.0 h1:TaZURxwzP2a9mPcbuMbku8s/z2z/RABCDt8peG6KkT8= github.com/DanilXO/filen v0.2.0/go.mod h1:X/vdsz338y2Dqkha+ATQJIcPvqpBy7kkLgm7t/Z943s= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= From 93a310c9c45d99d1e97346141e0f5f1ed5c4b148 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:41:25 +0200 Subject: [PATCH 06/14] review: rename settings --- pkg/config/linters_settings.go | 8 ++++---- pkg/golinters/filen/filen.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 0caf01b21b34..427434d69929 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -198,8 +198,8 @@ var defaultLintersSettings = LintersSettings{ ForceExclusiveShortDeclarations: false, }, Filen: FilenSettings{ - MinLinesNum: 5, - MaxLinesNum: 500, + MinLines: 5, + MaxLines: 500, IgnoreComments: false, }, } @@ -1021,8 +1021,8 @@ type WSLSettings struct { type FilenSettings struct { IgnoreComments bool `mapstructure:"ignore-comments"` - MaxLinesNum int `mapstructure:"min-lines-num"` - MinLinesNum int `mapstructure:"max-lines-num"` + MaxLines int `mapstructure:"min-lines"` + MinLines int `mapstructure:"max-lines"` } // CustomLinterSettings encapsulates the meta-data of a private linter. diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go index 469b2fb649f7..5e795cc74e08 100644 --- a/pkg/golinters/filen/filen.go +++ b/pkg/golinters/filen/filen.go @@ -9,8 +9,8 @@ import ( func New(settings *config.FilenSettings) *goanalysis.Linter { a := filen.NewAnalyzer(&filen.Runner{ - MaxLinesNum: settings.MaxLinesNum, - MinLinesNum: settings.MinLinesNum, + MaxLinesNum: settings.MaxLines, + MinLinesNum: settings.MinLines, IgnoreComments: settings.IgnoreComments, }) From f6ba166e32c2b9664da9cc4e1a1fab0269657c32 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:41:52 +0200 Subject: [PATCH 07/14] review: fix imports --- pkg/golinters/filen/filen.go | 3 ++- pkg/golinters/filen/filen_integration_test.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go index 5e795cc74e08..4da2c63d7f9f 100644 --- a/pkg/golinters/filen/filen.go +++ b/pkg/golinters/filen/filen.go @@ -2,9 +2,10 @@ package filen import ( "github.com/DanilXO/filen/pkg/filen" + "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/goanalysis" - "golang.org/x/tools/go/analysis" ) func New(settings *config.FilenSettings) *goanalysis.Linter { diff --git a/pkg/golinters/filen/filen_integration_test.go b/pkg/golinters/filen/filen_integration_test.go index 54ba84ccaf0b..ea5232a0468e 100644 --- a/pkg/golinters/filen/filen_integration_test.go +++ b/pkg/golinters/filen/filen_integration_test.go @@ -1,8 +1,9 @@ package filen import ( - "github.com/golangci/golangci-lint/test/testshared/integration" "testing" + + "github.com/golangci/golangci-lint/test/testshared/integration" ) func TestFromTestdata(t *testing.T) { From bee462793b0318287ec2d09043b498d88a0a3eb8 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:42:28 +0200 Subject: [PATCH 08/14] review: add tests --- pkg/golinters/filen/testdata/filen.go | 498 ++++++++++++++++- .../filen/testdata/filen_ignore_comments.go | 504 ++++++++++++++++++ .../filen/testdata/filen_ignore_comments.yml | 3 + .../filen/testdata/filen_max_lines.go | 107 ++++ .../filen/testdata/filen_max_lines.yml | 3 + .../filen/testdata/filen_min_lines.go | 17 + .../filen/testdata/filen_min_lines.yml | 3 + 7 files changed, 1121 insertions(+), 14 deletions(-) create mode 100644 pkg/golinters/filen/testdata/filen_ignore_comments.go create mode 100644 pkg/golinters/filen/testdata/filen_ignore_comments.yml create mode 100644 pkg/golinters/filen/testdata/filen_max_lines.go create mode 100644 pkg/golinters/filen/testdata/filen_max_lines.yml create mode 100644 pkg/golinters/filen/testdata/filen_min_lines.go create mode 100644 pkg/golinters/filen/testdata/filen_min_lines.yml diff --git a/pkg/golinters/filen/testdata/filen.go b/pkg/golinters/filen/testdata/filen.go index efd6beea1265..acd444f4d48f 100644 --- a/pkg/golinters/filen/testdata/filen.go +++ b/pkg/golinters/filen/testdata/filen.go @@ -1,32 +1,502 @@ -// Package samples - is the code for functional tests -package samples +//golangcitest:args -Efilen +package testdata // want "The number of lines in the file filen.go exceeds the allowed value! maxLinesNum = 500, fileLines = 502" -// foo - is test function -func foo() string { +import "fmt" + +// foo0 test function +func foo0() string { + fmt.Println("foo0 is a test") return "bar" } -// foo1 - is test function +// foo1 test function func foo1() string { - return "bar1" + fmt.Println("foo1 is a test") + return "bar" } -// foo2 - is test function +// foo2 test function func foo2() string { - return "bar2" + fmt.Println("foo2 is a test") + return "bar" } -// foo3 - is test function +// foo3 test function func foo3() string { - return "bar3" + fmt.Println("foo3 is a test") + return "bar" } -// foo4 - is test function +// foo4 test function func foo4() string { - return "bar4" + fmt.Println("foo4 is a test") + return "bar" } -// foo5 - is test function +// foo5 test function func foo5() string { - return "bar5" + fmt.Println("foo5 is a test") + return "bar" +} + +// foo6 test function +func foo6() string { + fmt.Println("foo6 is a test") + return "bar" +} + +// foo7 test function +func foo7() string { + fmt.Println("foo7 is a test") + return "bar" +} + +// foo8 test function +func foo8() string { + fmt.Println("foo8 is a test") + return "bar" +} + +// foo9 test function +func foo9() string { + fmt.Println("foo9 is a test") + return "bar" +} + +// foo10 test function +func foo10() string { + fmt.Println("foo10 is a test") + return "bar" +} + +// foo11 test function +func foo11() string { + fmt.Println("foo11 is a test") + return "bar" +} + +// foo12 test function +func foo12() string { + fmt.Println("foo12 is a test") + return "bar" +} + +// foo13 test function +func foo13() string { + fmt.Println("foo13 is a test") + return "bar" +} + +// foo14 test function +func foo14() string { + fmt.Println("foo14 is a test") + return "bar" +} + +// foo15 test function +func foo15() string { + fmt.Println("foo15 is a test") + return "bar" +} + +// foo16 test function +func foo16() string { + fmt.Println("foo16 is a test") + return "bar" +} + +// foo17 test function +func foo17() string { + fmt.Println("foo17 is a test") + return "bar" +} + +// foo18 test function +func foo18() string { + fmt.Println("foo18 is a test") + return "bar" +} + +// foo19 test function +func foo19() string { + fmt.Println("foo19 is a test") + return "bar" +} + +// foo20 test function +func foo20() string { + fmt.Println("foo20 is a test") + return "bar" +} + +// foo21 test function +func foo21() string { + fmt.Println("foo21 is a test") + return "bar" +} + +// foo22 test function +func foo22() string { + fmt.Println("foo22 is a test") + return "bar" +} + +// foo23 test function +func foo23() string { + fmt.Println("foo23 is a test") + return "bar" +} + +// foo24 test function +func foo24() string { + fmt.Println("foo24 is a test") + return "bar" +} + +// foo25 test function +func foo25() string { + fmt.Println("foo25 is a test") + return "bar" +} + +// foo26 test function +func foo26() string { + fmt.Println("foo26 is a test") + return "bar" +} + +// foo27 test function +func foo27() string { + fmt.Println("foo27 is a test") + return "bar" +} + +// foo28 test function +func foo28() string { + fmt.Println("foo28 is a test") + return "bar" +} + +// foo29 test function +func foo29() string { + fmt.Println("foo29 is a test") + return "bar" +} + +// foo30 test function +func foo30() string { + fmt.Println("foo30 is a test") + return "bar" +} + +// foo31 test function +func foo31() string { + fmt.Println("foo31 is a test") + return "bar" +} + +// foo32 test function +func foo32() string { + fmt.Println("foo32 is a test") + return "bar" +} + +// foo33 test function +func foo33() string { + fmt.Println("foo33 is a test") + return "bar" +} + +// foo34 test function +func foo34() string { + fmt.Println("foo34 is a test") + return "bar" +} + +// foo35 test function +func foo35() string { + fmt.Println("foo35 is a test") + return "bar" +} + +// foo36 test function +func foo36() string { + fmt.Println("foo36 is a test") + return "bar" +} + +// foo37 test function +func foo37() string { + fmt.Println("foo37 is a test") + return "bar" +} + +// foo38 test function +func foo38() string { + fmt.Println("foo38 is a test") + return "bar" +} + +// foo39 test function +func foo39() string { + fmt.Println("foo39 is a test") + return "bar" +} + +// foo40 test function +func foo40() string { + fmt.Println("foo40 is a test") + return "bar" +} + +// foo41 test function +func foo41() string { + fmt.Println("foo41 is a test") + return "bar" +} + +// foo42 test function +func foo42() string { + fmt.Println("foo42 is a test") + return "bar" +} + +// foo43 test function +func foo43() string { + fmt.Println("foo43 is a test") + return "bar" +} + +// foo44 test function +func foo44() string { + fmt.Println("foo44 is a test") + return "bar" +} + +// foo45 test function +func foo45() string { + fmt.Println("foo45 is a test") + return "bar" +} + +// foo46 test function +func foo46() string { + fmt.Println("foo46 is a test") + return "bar" +} + +// foo47 test function +func foo47() string { + fmt.Println("foo47 is a test") + return "bar" +} + +// foo48 test function +func foo48() string { + fmt.Println("foo48 is a test") + return "bar" +} + +// foo49 test function +func foo49() string { + fmt.Println("foo49 is a test") + return "bar" +} + +// foo50 test function +func foo50() string { + fmt.Println("foo50 is a test") + return "bar" +} + +// foo51 test function +func foo51() string { + fmt.Println("foo51 is a test") + return "bar" +} + +// foo52 test function +func foo52() string { + fmt.Println("foo52 is a test") + return "bar" +} + +// foo53 test function +func foo53() string { + fmt.Println("foo53 is a test") + return "bar" +} + +// foo54 test function +func foo54() string { + fmt.Println("foo54 is a test") + return "bar" +} + +// foo55 test function +func foo55() string { + fmt.Println("foo55 is a test") + return "bar" +} + +// foo56 test function +func foo56() string { + fmt.Println("foo56 is a test") + return "bar" +} + +// foo57 test function +func foo57() string { + fmt.Println("foo57 is a test") + return "bar" +} + +// foo58 test function +func foo58() string { + fmt.Println("foo58 is a test") + return "bar" +} + +// foo59 test function +func foo59() string { + fmt.Println("foo59 is a test") + return "bar" +} + +// foo60 test function +func foo60() string { + fmt.Println("foo60 is a test") + return "bar" +} + +// foo61 test function +func foo61() string { + fmt.Println("foo61 is a test") + return "bar" +} + +// foo62 test function +func foo62() string { + fmt.Println("foo62 is a test") + return "bar" +} + +// foo63 test function +func foo63() string { + fmt.Println("foo63 is a test") + return "bar" +} + +// foo64 test function +func foo64() string { + fmt.Println("foo64 is a test") + return "bar" +} + +// foo65 test function +func foo65() string { + fmt.Println("foo65 is a test") + return "bar" +} + +// foo66 test function +func foo66() string { + fmt.Println("foo66 is a test") + return "bar" +} + +// foo67 test function +func foo67() string { + fmt.Println("foo67 is a test") + return "bar" +} + +// foo68 test function +func foo68() string { + fmt.Println("foo68 is a test") + return "bar" +} + +// foo69 test function +func foo69() string { + fmt.Println("foo69 is a test") + return "bar" +} + +// foo70 test function +func foo70() string { + fmt.Println("foo70 is a test") + return "bar" +} + +// foo71 test function +func foo71() string { + fmt.Println("foo71 is a test") + return "bar" +} + +// foo72 test function +func foo72() string { + fmt.Println("foo72 is a test") + return "bar" +} + +// foo73 test function +func foo73() string { + fmt.Println("foo73 is a test") + return "bar" +} + +// foo74 test function +func foo74() string { + fmt.Println("foo74 is a test") + return "bar" +} + +// foo75 test function +func foo75() string { + fmt.Println("foo75 is a test") + return "bar" +} + +// foo76 test function +func foo76() string { + fmt.Println("foo76 is a test") + return "bar" +} + +// foo77 test function +func foo77() string { + fmt.Println("foo77 is a test") + return "bar" +} + +// foo78 test function +func foo78() string { + fmt.Println("foo78 is a test") + return "bar" +} + +// foo79 test function +func foo79() string { + fmt.Println("foo79 is a test") + return "bar" +} + +// foo80 test function +func foo80() string { + fmt.Println("foo80 is a test") + return "bar" +} + +// foo81 test function +func foo81() string { + fmt.Println("foo81 is a test") + return "bar" +} + +// foo82 test function +func foo82() string { + fmt.Println("foo82 is a test") + return "bar" } diff --git a/pkg/golinters/filen/testdata/filen_ignore_comments.go b/pkg/golinters/filen/testdata/filen_ignore_comments.go new file mode 100644 index 000000000000..86f3cb12acda --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_ignore_comments.go @@ -0,0 +1,504 @@ +//golangcitest:args -Efilen +//golangcitest:config_path testdata/filen_ignore_comments.yml +//golangcitest:expected_exitcode 0 +package testdata + +import "fmt" + +// foo0 test function +func foo0() string { + fmt.Println("foo0 is a test") + return "bar" +} + +// foo1 test function +func foo1() string { + fmt.Println("foo1 is a test") + return "bar" +} + +// foo2 test function +func foo2() string { + fmt.Println("foo2 is a test") + return "bar" +} + +// foo3 test function +func foo3() string { + fmt.Println("foo3 is a test") + return "bar" +} + +// foo4 test function +func foo4() string { + fmt.Println("foo4 is a test") + return "bar" +} + +// foo5 test function +func foo5() string { + fmt.Println("foo5 is a test") + return "bar" +} + +// foo6 test function +func foo6() string { + fmt.Println("foo6 is a test") + return "bar" +} + +// foo7 test function +func foo7() string { + fmt.Println("foo7 is a test") + return "bar" +} + +// foo8 test function +func foo8() string { + fmt.Println("foo8 is a test") + return "bar" +} + +// foo9 test function +func foo9() string { + fmt.Println("foo9 is a test") + return "bar" +} + +// foo10 test function +func foo10() string { + fmt.Println("foo10 is a test") + return "bar" +} + +// foo11 test function +func foo11() string { + fmt.Println("foo11 is a test") + return "bar" +} + +// foo12 test function +func foo12() string { + fmt.Println("foo12 is a test") + return "bar" +} + +// foo13 test function +func foo13() string { + fmt.Println("foo13 is a test") + return "bar" +} + +// foo14 test function +func foo14() string { + fmt.Println("foo14 is a test") + return "bar" +} + +// foo15 test function +func foo15() string { + fmt.Println("foo15 is a test") + return "bar" +} + +// foo16 test function +func foo16() string { + fmt.Println("foo16 is a test") + return "bar" +} + +// foo17 test function +func foo17() string { + fmt.Println("foo17 is a test") + return "bar" +} + +// foo18 test function +func foo18() string { + fmt.Println("foo18 is a test") + return "bar" +} + +// foo19 test function +func foo19() string { + fmt.Println("foo19 is a test") + return "bar" +} + +// foo20 test function +func foo20() string { + fmt.Println("foo20 is a test") + return "bar" +} + +// foo21 test function +func foo21() string { + fmt.Println("foo21 is a test") + return "bar" +} + +// foo22 test function +func foo22() string { + fmt.Println("foo22 is a test") + return "bar" +} + +// foo23 test function +func foo23() string { + fmt.Println("foo23 is a test") + return "bar" +} + +// foo24 test function +func foo24() string { + fmt.Println("foo24 is a test") + return "bar" +} + +// foo25 test function +func foo25() string { + fmt.Println("foo25 is a test") + return "bar" +} + +// foo26 test function +func foo26() string { + fmt.Println("foo26 is a test") + return "bar" +} + +// foo27 test function +func foo27() string { + fmt.Println("foo27 is a test") + return "bar" +} + +// foo28 test function +func foo28() string { + fmt.Println("foo28 is a test") + return "bar" +} + +// foo29 test function +func foo29() string { + fmt.Println("foo29 is a test") + return "bar" +} + +// foo30 test function +func foo30() string { + fmt.Println("foo30 is a test") + return "bar" +} + +// foo31 test function +func foo31() string { + fmt.Println("foo31 is a test") + return "bar" +} + +// foo32 test function +func foo32() string { + fmt.Println("foo32 is a test") + return "bar" +} + +// foo33 test function +func foo33() string { + fmt.Println("foo33 is a test") + return "bar" +} + +// foo34 test function +func foo34() string { + fmt.Println("foo34 is a test") + return "bar" +} + +// foo35 test function +func foo35() string { + fmt.Println("foo35 is a test") + return "bar" +} + +// foo36 test function +func foo36() string { + fmt.Println("foo36 is a test") + return "bar" +} + +// foo37 test function +func foo37() string { + fmt.Println("foo37 is a test") + return "bar" +} + +// foo38 test function +func foo38() string { + fmt.Println("foo38 is a test") + return "bar" +} + +// foo39 test function +func foo39() string { + fmt.Println("foo39 is a test") + return "bar" +} + +// foo40 test function +func foo40() string { + fmt.Println("foo40 is a test") + return "bar" +} + +// foo41 test function +func foo41() string { + fmt.Println("foo41 is a test") + return "bar" +} + +// foo42 test function +func foo42() string { + fmt.Println("foo42 is a test") + return "bar" +} + +// foo43 test function +func foo43() string { + fmt.Println("foo43 is a test") + return "bar" +} + +// foo44 test function +func foo44() string { + fmt.Println("foo44 is a test") + return "bar" +} + +// foo45 test function +func foo45() string { + fmt.Println("foo45 is a test") + return "bar" +} + +// foo46 test function +func foo46() string { + fmt.Println("foo46 is a test") + return "bar" +} + +// foo47 test function +func foo47() string { + fmt.Println("foo47 is a test") + return "bar" +} + +// foo48 test function +func foo48() string { + fmt.Println("foo48 is a test") + return "bar" +} + +// foo49 test function +func foo49() string { + fmt.Println("foo49 is a test") + return "bar" +} + +// foo50 test function +func foo50() string { + fmt.Println("foo50 is a test") + return "bar" +} + +// foo51 test function +func foo51() string { + fmt.Println("foo51 is a test") + return "bar" +} + +// foo52 test function +func foo52() string { + fmt.Println("foo52 is a test") + return "bar" +} + +// foo53 test function +func foo53() string { + fmt.Println("foo53 is a test") + return "bar" +} + +// foo54 test function +func foo54() string { + fmt.Println("foo54 is a test") + return "bar" +} + +// foo55 test function +func foo55() string { + fmt.Println("foo55 is a test") + return "bar" +} + +// foo56 test function +func foo56() string { + fmt.Println("foo56 is a test") + return "bar" +} + +// foo57 test function +func foo57() string { + fmt.Println("foo57 is a test") + return "bar" +} + +// foo58 test function +func foo58() string { + fmt.Println("foo58 is a test") + return "bar" +} + +// foo59 test function +func foo59() string { + fmt.Println("foo59 is a test") + return "bar" +} + +// foo60 test function +func foo60() string { + fmt.Println("foo60 is a test") + return "bar" +} + +// foo61 test function +func foo61() string { + fmt.Println("foo61 is a test") + return "bar" +} + +// foo62 test function +func foo62() string { + fmt.Println("foo62 is a test") + return "bar" +} + +// foo63 test function +func foo63() string { + fmt.Println("foo63 is a test") + return "bar" +} + +// foo64 test function +func foo64() string { + fmt.Println("foo64 is a test") + return "bar" +} + +// foo65 test function +func foo65() string { + fmt.Println("foo65 is a test") + return "bar" +} + +// foo66 test function +func foo66() string { + fmt.Println("foo66 is a test") + return "bar" +} + +// foo67 test function +func foo67() string { + fmt.Println("foo67 is a test") + return "bar" +} + +// foo68 test function +func foo68() string { + fmt.Println("foo68 is a test") + return "bar" +} + +// foo69 test function +func foo69() string { + fmt.Println("foo69 is a test") + return "bar" +} + +// foo70 test function +func foo70() string { + fmt.Println("foo70 is a test") + return "bar" +} + +// foo71 test function +func foo71() string { + fmt.Println("foo71 is a test") + return "bar" +} + +// foo72 test function +func foo72() string { + fmt.Println("foo72 is a test") + return "bar" +} + +// foo73 test function +func foo73() string { + fmt.Println("foo73 is a test") + return "bar" +} + +// foo74 test function +func foo74() string { + fmt.Println("foo74 is a test") + return "bar" +} + +// foo75 test function +func foo75() string { + fmt.Println("foo75 is a test") + return "bar" +} + +// foo76 test function +func foo76() string { + fmt.Println("foo76 is a test") + return "bar" +} + +// foo77 test function +func foo77() string { + fmt.Println("foo77 is a test") + return "bar" +} + +// foo78 test function +func foo78() string { + fmt.Println("foo78 is a test") + return "bar" +} + +// foo79 test function +func foo79() string { + fmt.Println("foo79 is a test") + return "bar" +} + +// foo80 test function +func foo80() string { + fmt.Println("foo80 is a test") + return "bar" +} + +// foo81 test function +func foo81() string { + fmt.Println("foo81 is a test") + return "bar" +} + +// foo82 test function +func foo82() string { + fmt.Println("foo82 is a test") + return "bar" +} diff --git a/pkg/golinters/filen/testdata/filen_ignore_comments.yml b/pkg/golinters/filen/testdata/filen_ignore_comments.yml new file mode 100644 index 000000000000..a8a7cbd9e6bd --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_ignore_comments.yml @@ -0,0 +1,3 @@ +linters-settings: + filen: + ignore-comments: true diff --git a/pkg/golinters/filen/testdata/filen_max_lines.go b/pkg/golinters/filen/testdata/filen_max_lines.go new file mode 100644 index 000000000000..eb2db0dd4413 --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_max_lines.go @@ -0,0 +1,107 @@ +//golangcitest:args -Efilen +//golangcitest:config_path testdata/filen_max_lines.yml +package testdata // want "The number of lines in the file filen_max_lines.go exceeds the allowed value! maxLinesNum = 100, fileLines = 107" + +import "fmt" + +// foo0 test function +func foo0() string { + fmt.Println("foo0 is a test") + return "bar" +} + +// foo1 test function +func foo1() string { + fmt.Println("foo1 is a test") + return "bar" +} + +// foo2 test function +func foo2() string { + fmt.Println("foo2 is a test") + return "bar" +} + +// foo3 test function +func foo3() string { + fmt.Println("foo3 is a test") + return "bar" +} + +// foo4 test function +func foo4() string { + fmt.Println("foo4 is a test") + return "bar" +} + +// foo5 test function +func foo5() string { + fmt.Println("foo5 is a test") + return "bar" +} + +// foo6 test function +func foo6() string { + fmt.Println("foo6 is a test") + return "bar" +} + +// foo7 test function +func foo7() string { + fmt.Println("foo7 is a test") + return "bar" +} + +// foo8 test function +func foo8() string { + fmt.Println("foo8 is a test") + return "bar" +} + +// foo9 test function +func foo9() string { + fmt.Println("foo9 is a test") + return "bar" +} + +// foo10 test function +func foo10() string { + fmt.Println("foo10 is a test") + return "bar" +} + +// foo11 test function +func foo11() string { + fmt.Println("foo11 is a test") + return "bar" +} + +// foo12 test function +func foo12() string { + fmt.Println("foo12 is a test") + return "bar" +} + +// foo13 test function +func foo13() string { + fmt.Println("foo13 is a test") + return "bar" +} + +// foo14 test function +func foo14() string { + fmt.Println("foo14 is a test") + return "bar" +} + +// foo15 test function +func foo15() string { + fmt.Println("foo15 is a test") + return "bar" +} + +// foo16 test function +func foo16() string { + fmt.Println("foo16 is a test") + return "bar" +} diff --git a/pkg/golinters/filen/testdata/filen_max_lines.yml b/pkg/golinters/filen/testdata/filen_max_lines.yml new file mode 100644 index 000000000000..e73b1703a4a8 --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_max_lines.yml @@ -0,0 +1,3 @@ +linters-settings: + filen: + max-lines: 100 diff --git a/pkg/golinters/filen/testdata/filen_min_lines.go b/pkg/golinters/filen/testdata/filen_min_lines.go new file mode 100644 index 000000000000..7e206c112073 --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_min_lines.go @@ -0,0 +1,17 @@ +//golangcitest:args -Efilen +//golangcitest:config_path testdata/filen_min_lines.yml +package testdata // want "The number of lines in the file filen_min_lines.go less the allowed value! minLinesNum = 100, fileLines = 17" + +import "fmt" + +// foo0 test function +func foo0() string { + fmt.Println("foo0 is a test") + return "bar" +} + +// foo1 test function +func foo1() string { + fmt.Println("foo1 is a test") + return "bar" +} diff --git a/pkg/golinters/filen/testdata/filen_min_lines.yml b/pkg/golinters/filen/testdata/filen_min_lines.yml new file mode 100644 index 000000000000..341da09ddee2 --- /dev/null +++ b/pkg/golinters/filen/testdata/filen_min_lines.yml @@ -0,0 +1,3 @@ +linters-settings: + filen: + min-lines: 100 From 4f8967534d3dd9bd5e037fbd924eba432172fb4c Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:50:34 +0200 Subject: [PATCH 09/14] review: fix setting names --- pkg/config/linters_settings.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 427434d69929..483d872180c5 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -1021,8 +1021,8 @@ type WSLSettings struct { type FilenSettings struct { IgnoreComments bool `mapstructure:"ignore-comments"` - MaxLines int `mapstructure:"min-lines"` - MinLines int `mapstructure:"max-lines"` + MaxLines int `mapstructure:"max-lines"` + MinLines int `mapstructure:"min-lines"` } // CustomLinterSettings encapsulates the meta-data of a private linter. From 0df4ff06a85024396761bac3c86c3b6cadee9bbc Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:51:14 +0200 Subject: [PATCH 10/14] review: fix linter requirements --- pkg/golinters/filen/filen.go | 2 +- pkg/lint/lintersdb/builder_linter.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go index 4da2c63d7f9f..89ebc85e82f2 100644 --- a/pkg/golinters/filen/filen.go +++ b/pkg/golinters/filen/filen.go @@ -20,5 +20,5 @@ func New(settings *config.FilenSettings) *goanalysis.Linter { a.Doc, []*analysis.Analyzer{a}, nil, - ).WithLoadMode(goanalysis.LoadModeTypesInfo) + ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/lint/lintersdb/builder_linter.go b/pkg/lint/lintersdb/builder_linter.go index 5968e7d1ee0c..5195abc78272 100644 --- a/pkg/lint/lintersdb/builder_linter.go +++ b/pkg/lint/lintersdb/builder_linter.go @@ -286,8 +286,7 @@ func (LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) { linter.NewConfig(filen.New(&cfg.LintersSettings.Filen)). WithSince("v1.62.0"). - WithPresets(linter.PresetComplexity). - WithLoadForGoAnalysis(). + WithPresets(linter.PresetComplexity, linter.PresetStyle). WithURL("https://github.com/DanilXO/filen"), linter.NewConfig(forbidigo.New(&cfg.LintersSettings.Forbidigo)). From 5a30757aaa26cfca2751faf6b57241ce101721ff Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 11:55:24 +0200 Subject: [PATCH 11/14] review: fix settings struct order --- pkg/config/linters_settings.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 483d872180c5..6f089f310d48 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -40,6 +40,11 @@ var defaultLintersSettings = LintersSettings{ ExplicitExhaustiveMap: false, ExplicitExhaustiveSwitch: false, }, + Filen: FilenSettings{ + MinLines: 5, + MaxLines: 500, + IgnoreComments: false, + }, Forbidigo: ForbidigoSettings{ ExcludeGodocExamples: true, }, @@ -197,11 +202,6 @@ var defaultLintersSettings = LintersSettings{ ErrorVariableNames: []string{"err"}, ForceExclusiveShortDeclarations: false, }, - Filen: FilenSettings{ - MinLines: 5, - MaxLines: 500, - IgnoreComments: false, - }, } type LintersSettings struct { @@ -219,6 +219,7 @@ type LintersSettings struct { ErrorLint ErrorLintSettings Exhaustive ExhaustiveSettings Exhaustruct ExhaustructSettings + Filen FilenSettings Forbidigo ForbidigoSettings Funlen FunlenSettings Gci GciSettings @@ -287,7 +288,6 @@ type LintersSettings struct { Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings - Filen FilenSettings Custom map[string]CustomLinterSettings } @@ -424,6 +424,12 @@ type ExhaustructSettings struct { Exclude []string `mapstructure:"exclude"` } +type FilenSettings struct { + IgnoreComments bool `mapstructure:"ignore-comments"` + MaxLines int `mapstructure:"max-lines"` + MinLines int `mapstructure:"min-lines"` +} + type ForbidigoSettings struct { Forbid []ForbidigoPattern `mapstructure:"forbid"` ExcludeGodocExamples bool `mapstructure:"exclude-godoc-examples"` @@ -1019,12 +1025,6 @@ type WSLSettings struct { ForceExclusiveShortDeclarations bool `mapstructure:"force-short-decl-cuddling"` } -type FilenSettings struct { - IgnoreComments bool `mapstructure:"ignore-comments"` - MaxLines int `mapstructure:"max-lines"` - MinLines int `mapstructure:"min-lines"` -} - // CustomLinterSettings encapsulates the meta-data of a private linter. type CustomLinterSettings struct { // Type plugin type. From 96e6c647fad8d92835b8f1515d03ea84968486b1 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 12:00:46 +0200 Subject: [PATCH 12/14] review: add json schema --- .golangci.next.reference.yml | 8 ++++---- jsonschema/golangci.next.jsonschema.json | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 9cb8fcca847d..2349439ffc96 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -540,12 +540,12 @@ linters-settings: # Ignore comments when counting lines. # Default false ignore-comments: true - # Max number of lines in a file setting + # Max number of lines in a file. # Default: 500 - max-lines-num: 1000 - # Min number of lines in a file setting + max-lines: 1000 + # Min number of lines in a file. # Default: 5 - min-lines-num: 1 + min-lines: 1 forbidigo: # Forbid the following identifiers (list of regexp). diff --git a/jsonschema/golangci.next.jsonschema.json b/jsonschema/golangci.next.jsonschema.json index 7a012ec288df..3a2f5405595b 100644 --- a/jsonschema/golangci.next.jsonschema.json +++ b/jsonschema/golangci.next.jsonschema.json @@ -1012,6 +1012,27 @@ } } }, + "filen": { + "type": "object", + "additionalProperties": false, + "properties": { + "ignore-comments": { + "description": "Ignore comments when counting lines.", + "type": "boolean", + "default": false + }, + "max-lines": { + "description": "Max number of lines in a file.", + "type": "integer", + "default": 500 + }, + "min-lines": { + "description": "Min number of lines in a file.", + "type": "integer", + "default": 5 + } + } + }, "forbidigo": { "type": "object", "additionalProperties": false, From 8def41fa070e8f805b175dd5dbe591c99509bbe7 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 12:39:57 +0200 Subject: [PATCH 13/14] review: update linter --- go.mod | 2 +- go.sum | 4 ++-- pkg/golinters/filen/filen.go | 4 ++-- pkg/golinters/filen/testdata/filen.go | 2 +- pkg/golinters/filen/testdata/filen_max_lines.go | 2 +- pkg/golinters/filen/testdata/filen_min_lines.go | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 711eddfac486..adbcf99d9cf8 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/Antonboom/testifylint v1.5.0 github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c github.com/Crocmagnon/fatcontext v0.5.2 - github.com/DanilXO/filen v0.2.0 + github.com/DanilXO/filen v0.3.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 github.com/OpenPeeDeeP/depguard/v2 v2.2.0 diff --git a/go.sum b/go.sum index 7976d4040247..d349ebe05bc5 100644 --- a/go.sum +++ b/go.sum @@ -51,8 +51,8 @@ github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Crocmagnon/fatcontext v0.5.2 h1:vhSEg8Gqng8awhPju2w7MKHqMlg4/NI+gSDHtR3xgwA= github.com/Crocmagnon/fatcontext v0.5.2/go.mod h1:87XhRMaInHP44Q7Tlc7jkgKKB7kZAOPiDkFMdKCC+74= -github.com/DanilXO/filen v0.2.0 h1:TaZURxwzP2a9mPcbuMbku8s/z2z/RABCDt8peG6KkT8= -github.com/DanilXO/filen v0.2.0/go.mod h1:X/vdsz338y2Dqkha+ATQJIcPvqpBy7kkLgm7t/Z943s= +github.com/DanilXO/filen v0.3.0 h1:OWRv0T/EZYg8NFivCGkRQAVYOXl5Ioxl0CRuWc2W/pY= +github.com/DanilXO/filen v0.3.0/go.mod h1:VRxWVUk+WuR016dFLD+D74Ac0mGSMANQ3LHkSlZNipQ= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= diff --git a/pkg/golinters/filen/filen.go b/pkg/golinters/filen/filen.go index 89ebc85e82f2..90b302f8683c 100644 --- a/pkg/golinters/filen/filen.go +++ b/pkg/golinters/filen/filen.go @@ -10,8 +10,8 @@ import ( func New(settings *config.FilenSettings) *goanalysis.Linter { a := filen.NewAnalyzer(&filen.Runner{ - MaxLinesNum: settings.MaxLines, - MinLinesNum: settings.MinLines, + MaxLines: settings.MaxLines, + MinLines: settings.MinLines, IgnoreComments: settings.IgnoreComments, }) diff --git a/pkg/golinters/filen/testdata/filen.go b/pkg/golinters/filen/testdata/filen.go index acd444f4d48f..7ed4c0520860 100644 --- a/pkg/golinters/filen/testdata/filen.go +++ b/pkg/golinters/filen/testdata/filen.go @@ -1,5 +1,5 @@ //golangcitest:args -Efilen -package testdata // want "The number of lines in the file filen.go exceeds the allowed value! maxLinesNum = 500, fileLines = 502" +package testdata // want `The number of lines exceeds the allowed value. \(maxLinesNum = 500, fileLines = 502\)` import "fmt" diff --git a/pkg/golinters/filen/testdata/filen_max_lines.go b/pkg/golinters/filen/testdata/filen_max_lines.go index eb2db0dd4413..bbd06771ea3c 100644 --- a/pkg/golinters/filen/testdata/filen_max_lines.go +++ b/pkg/golinters/filen/testdata/filen_max_lines.go @@ -1,6 +1,6 @@ //golangcitest:args -Efilen //golangcitest:config_path testdata/filen_max_lines.yml -package testdata // want "The number of lines in the file filen_max_lines.go exceeds the allowed value! maxLinesNum = 100, fileLines = 107" +package testdata // want `The number of lines exceeds the allowed value. \(maxLinesNum = 100, fileLines = 107\)` import "fmt" diff --git a/pkg/golinters/filen/testdata/filen_min_lines.go b/pkg/golinters/filen/testdata/filen_min_lines.go index 7e206c112073..34050218947a 100644 --- a/pkg/golinters/filen/testdata/filen_min_lines.go +++ b/pkg/golinters/filen/testdata/filen_min_lines.go @@ -1,6 +1,6 @@ //golangcitest:args -Efilen //golangcitest:config_path testdata/filen_min_lines.yml -package testdata // want "The number of lines in the file filen_min_lines.go less the allowed value! minLinesNum = 100, fileLines = 17" +package testdata // want `The number of lines in less the allowed value. \(minLinesNum = 100, fileLines = 17\)` import "fmt" From f9be7cce79594283a929bc88979a7825d50af5ca Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 24 Oct 2024 13:01:50 +0200 Subject: [PATCH 14/14] review: change max defautl to 1000 --- .golangci.next.reference.yml | 4 +- jsonschema/golangci.next.jsonschema.json | 2 +- pkg/config/linters_settings.go | 2 +- pkg/golinters/filen/testdata/filen.go | 506 +++++++++++++++++- .../filen/testdata/filen_ignore_comments.go | 504 +++++++++++++++++ 5 files changed, 1013 insertions(+), 5 deletions(-) diff --git a/.golangci.next.reference.yml b/.golangci.next.reference.yml index 2349439ffc96..f1bba3e1afa9 100644 --- a/.golangci.next.reference.yml +++ b/.golangci.next.reference.yml @@ -541,8 +541,8 @@ linters-settings: # Default false ignore-comments: true # Max number of lines in a file. - # Default: 500 - max-lines: 1000 + # Default: 1000 + max-lines: 500 # Min number of lines in a file. # Default: 5 min-lines: 1 diff --git a/jsonschema/golangci.next.jsonschema.json b/jsonschema/golangci.next.jsonschema.json index 3a2f5405595b..a9717569d2de 100644 --- a/jsonschema/golangci.next.jsonschema.json +++ b/jsonschema/golangci.next.jsonschema.json @@ -1024,7 +1024,7 @@ "max-lines": { "description": "Max number of lines in a file.", "type": "integer", - "default": 500 + "default": 1000 }, "min-lines": { "description": "Min number of lines in a file.", diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 6f089f310d48..064611e6088f 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -42,7 +42,7 @@ var defaultLintersSettings = LintersSettings{ }, Filen: FilenSettings{ MinLines: 5, - MaxLines: 500, + MaxLines: 1000, IgnoreComments: false, }, Forbidigo: ForbidigoSettings{ diff --git a/pkg/golinters/filen/testdata/filen.go b/pkg/golinters/filen/testdata/filen.go index 7ed4c0520860..da194b2fd9de 100644 --- a/pkg/golinters/filen/testdata/filen.go +++ b/pkg/golinters/filen/testdata/filen.go @@ -1,5 +1,5 @@ //golangcitest:args -Efilen -package testdata // want `The number of lines exceeds the allowed value. \(maxLinesNum = 500, fileLines = 502\)` +package testdata // want `The number of lines exceeds the allowed value. \(maxLinesNum = 1000, fileLines = 1006\)` import "fmt" @@ -500,3 +500,507 @@ func foo82() string { fmt.Println("foo82 is a test") return "bar" } + +// foo83 test function +func foo83() string { + fmt.Println("foo83 is a test") + return "bar" +} + +// foo84 test function +func foo84() string { + fmt.Println("foo84 is a test") + return "bar" +} + +// foo85 test function +func foo85() string { + fmt.Println("foo85 is a test") + return "bar" +} + +// foo86 test function +func foo86() string { + fmt.Println("foo86 is a test") + return "bar" +} + +// foo87 test function +func foo87() string { + fmt.Println("foo87 is a test") + return "bar" +} + +// foo88 test function +func foo88() string { + fmt.Println("foo88 is a test") + return "bar" +} + +// foo89 test function +func foo89() string { + fmt.Println("foo89 is a test") + return "bar" +} + +// foo90 test function +func foo90() string { + fmt.Println("foo90 is a test") + return "bar" +} + +// foo91 test function +func foo91() string { + fmt.Println("foo91 is a test") + return "bar" +} + +// foo92 test function +func foo92() string { + fmt.Println("foo92 is a test") + return "bar" +} + +// foo93 test function +func foo93() string { + fmt.Println("foo93 is a test") + return "bar" +} + +// foo94 test function +func foo94() string { + fmt.Println("foo94 is a test") + return "bar" +} + +// foo95 test function +func foo95() string { + fmt.Println("foo95 is a test") + return "bar" +} + +// foo96 test function +func foo96() string { + fmt.Println("foo96 is a test") + return "bar" +} + +// foo97 test function +func foo97() string { + fmt.Println("foo97 is a test") + return "bar" +} + +// foo98 test function +func foo98() string { + fmt.Println("foo98 is a test") + return "bar" +} + +// foo99 test function +func foo99() string { + fmt.Println("foo99 is a test") + return "bar" +} + +// foo100 test function +func foo100() string { + fmt.Println("foo100 is a test") + return "bar" +} + +// foo101 test function +func foo101() string { + fmt.Println("foo101 is a test") + return "bar" +} + +// foo102 test function +func foo102() string { + fmt.Println("foo102 is a test") + return "bar" +} + +// foo103 test function +func foo103() string { + fmt.Println("foo103 is a test") + return "bar" +} + +// foo104 test function +func foo104() string { + fmt.Println("foo104 is a test") + return "bar" +} + +// foo105 test function +func foo105() string { + fmt.Println("foo105 is a test") + return "bar" +} + +// foo106 test function +func foo106() string { + fmt.Println("foo106 is a test") + return "bar" +} + +// foo107 test function +func foo107() string { + fmt.Println("foo107 is a test") + return "bar" +} + +// foo108 test function +func foo108() string { + fmt.Println("foo108 is a test") + return "bar" +} + +// foo109 test function +func foo109() string { + fmt.Println("foo109 is a test") + return "bar" +} + +// foo110 test function +func foo110() string { + fmt.Println("foo110 is a test") + return "bar" +} + +// foo111 test function +func foo111() string { + fmt.Println("foo111 is a test") + return "bar" +} + +// foo112 test function +func foo112() string { + fmt.Println("foo112 is a test") + return "bar" +} + +// foo113 test function +func foo113() string { + fmt.Println("foo113 is a test") + return "bar" +} + +// foo114 test function +func foo114() string { + fmt.Println("foo114 is a test") + return "bar" +} + +// foo115 test function +func foo115() string { + fmt.Println("foo115 is a test") + return "bar" +} + +// foo116 test function +func foo116() string { + fmt.Println("foo116 is a test") + return "bar" +} + +// foo117 test function +func foo117() string { + fmt.Println("foo117 is a test") + return "bar" +} + +// foo118 test function +func foo118() string { + fmt.Println("foo118 is a test") + return "bar" +} + +// foo119 test function +func foo119() string { + fmt.Println("foo119 is a test") + return "bar" +} + +// foo120 test function +func foo120() string { + fmt.Println("foo120 is a test") + return "bar" +} + +// foo121 test function +func foo121() string { + fmt.Println("foo121 is a test") + return "bar" +} + +// foo122 test function +func foo122() string { + fmt.Println("foo122 is a test") + return "bar" +} + +// foo123 test function +func foo123() string { + fmt.Println("foo123 is a test") + return "bar" +} + +// foo124 test function +func foo124() string { + fmt.Println("foo124 is a test") + return "bar" +} + +// foo125 test function +func foo125() string { + fmt.Println("foo125 is a test") + return "bar" +} + +// foo126 test function +func foo126() string { + fmt.Println("foo126 is a test") + return "bar" +} + +// foo127 test function +func foo127() string { + fmt.Println("foo127 is a test") + return "bar" +} + +// foo128 test function +func foo128() string { + fmt.Println("foo128 is a test") + return "bar" +} + +// foo129 test function +func foo129() string { + fmt.Println("foo129 is a test") + return "bar" +} + +// foo130 test function +func foo130() string { + fmt.Println("foo130 is a test") + return "bar" +} + +// foo131 test function +func foo131() string { + fmt.Println("foo131 is a test") + return "bar" +} + +// foo132 test function +func foo132() string { + fmt.Println("foo132 is a test") + return "bar" +} + +// foo133 test function +func foo133() string { + fmt.Println("foo133 is a test") + return "bar" +} + +// foo134 test function +func foo134() string { + fmt.Println("foo134 is a test") + return "bar" +} + +// foo135 test function +func foo135() string { + fmt.Println("foo135 is a test") + return "bar" +} + +// foo136 test function +func foo136() string { + fmt.Println("foo136 is a test") + return "bar" +} + +// foo137 test function +func foo137() string { + fmt.Println("foo137 is a test") + return "bar" +} + +// foo138 test function +func foo138() string { + fmt.Println("foo138 is a test") + return "bar" +} + +// foo139 test function +func foo139() string { + fmt.Println("foo139 is a test") + return "bar" +} + +// foo140 test function +func foo140() string { + fmt.Println("foo140 is a test") + return "bar" +} + +// foo141 test function +func foo141() string { + fmt.Println("foo141 is a test") + return "bar" +} + +// foo142 test function +func foo142() string { + fmt.Println("foo142 is a test") + return "bar" +} + +// foo143 test function +func foo143() string { + fmt.Println("foo143 is a test") + return "bar" +} + +// foo144 test function +func foo144() string { + fmt.Println("foo144 is a test") + return "bar" +} + +// foo145 test function +func foo145() string { + fmt.Println("foo145 is a test") + return "bar" +} + +// foo146 test function +func foo146() string { + fmt.Println("foo146 is a test") + return "bar" +} + +// foo147 test function +func foo147() string { + fmt.Println("foo147 is a test") + return "bar" +} + +// foo148 test function +func foo148() string { + fmt.Println("foo148 is a test") + return "bar" +} + +// foo149 test function +func foo149() string { + fmt.Println("foo149 is a test") + return "bar" +} + +// foo150 test function +func foo150() string { + fmt.Println("foo150 is a test") + return "bar" +} + +// foo151 test function +func foo151() string { + fmt.Println("foo151 is a test") + return "bar" +} + +// foo152 test function +func foo152() string { + fmt.Println("foo152 is a test") + return "bar" +} + +// foo153 test function +func foo153() string { + fmt.Println("foo153 is a test") + return "bar" +} + +// foo154 test function +func foo154() string { + fmt.Println("foo154 is a test") + return "bar" +} + +// foo155 test function +func foo155() string { + fmt.Println("foo155 is a test") + return "bar" +} + +// foo156 test function +func foo156() string { + fmt.Println("foo156 is a test") + return "bar" +} + +// foo157 test function +func foo157() string { + fmt.Println("foo157 is a test") + return "bar" +} + +// foo158 test function +func foo158() string { + fmt.Println("foo158 is a test") + return "bar" +} + +// foo159 test function +func foo159() string { + fmt.Println("foo159 is a test") + return "bar" +} + +// foo160 test function +func foo160() string { + fmt.Println("foo160 is a test") + return "bar" +} + +// foo161 test function +func foo161() string { + fmt.Println("foo161 is a test") + return "bar" +} + +// foo162 test function +func foo162() string { + fmt.Println("foo162 is a test") + return "bar" +} + +// foo163 test function +func foo163() string { + fmt.Println("foo163 is a test") + return "bar" +} + +// foo164 test function +func foo164() string { + fmt.Println("foo164 is a test") + return "bar" +} + +// foo165 test function +func foo165() string { + fmt.Println("foo165 is a test") + return "bar" +} + +// foo166 test function +func foo166() string { + fmt.Println("foo166 is a test") + return "bar" +} diff --git a/pkg/golinters/filen/testdata/filen_ignore_comments.go b/pkg/golinters/filen/testdata/filen_ignore_comments.go index 86f3cb12acda..70f58aab65a6 100644 --- a/pkg/golinters/filen/testdata/filen_ignore_comments.go +++ b/pkg/golinters/filen/testdata/filen_ignore_comments.go @@ -502,3 +502,507 @@ func foo82() string { fmt.Println("foo82 is a test") return "bar" } + +// foo83 test function +func foo83() string { + fmt.Println("foo83 is a test") + return "bar" +} + +// foo84 test function +func foo84() string { + fmt.Println("foo84 is a test") + return "bar" +} + +// foo85 test function +func foo85() string { + fmt.Println("foo85 is a test") + return "bar" +} + +// foo86 test function +func foo86() string { + fmt.Println("foo86 is a test") + return "bar" +} + +// foo87 test function +func foo87() string { + fmt.Println("foo87 is a test") + return "bar" +} + +// foo88 test function +func foo88() string { + fmt.Println("foo88 is a test") + return "bar" +} + +// foo89 test function +func foo89() string { + fmt.Println("foo89 is a test") + return "bar" +} + +// foo90 test function +func foo90() string { + fmt.Println("foo90 is a test") + return "bar" +} + +// foo91 test function +func foo91() string { + fmt.Println("foo91 is a test") + return "bar" +} + +// foo92 test function +func foo92() string { + fmt.Println("foo92 is a test") + return "bar" +} + +// foo93 test function +func foo93() string { + fmt.Println("foo93 is a test") + return "bar" +} + +// foo94 test function +func foo94() string { + fmt.Println("foo94 is a test") + return "bar" +} + +// foo95 test function +func foo95() string { + fmt.Println("foo95 is a test") + return "bar" +} + +// foo96 test function +func foo96() string { + fmt.Println("foo96 is a test") + return "bar" +} + +// foo97 test function +func foo97() string { + fmt.Println("foo97 is a test") + return "bar" +} + +// foo98 test function +func foo98() string { + fmt.Println("foo98 is a test") + return "bar" +} + +// foo99 test function +func foo99() string { + fmt.Println("foo99 is a test") + return "bar" +} + +// foo100 test function +func foo100() string { + fmt.Println("foo100 is a test") + return "bar" +} + +// foo101 test function +func foo101() string { + fmt.Println("foo101 is a test") + return "bar" +} + +// foo102 test function +func foo102() string { + fmt.Println("foo102 is a test") + return "bar" +} + +// foo103 test function +func foo103() string { + fmt.Println("foo103 is a test") + return "bar" +} + +// foo104 test function +func foo104() string { + fmt.Println("foo104 is a test") + return "bar" +} + +// foo105 test function +func foo105() string { + fmt.Println("foo105 is a test") + return "bar" +} + +// foo106 test function +func foo106() string { + fmt.Println("foo106 is a test") + return "bar" +} + +// foo107 test function +func foo107() string { + fmt.Println("foo107 is a test") + return "bar" +} + +// foo108 test function +func foo108() string { + fmt.Println("foo108 is a test") + return "bar" +} + +// foo109 test function +func foo109() string { + fmt.Println("foo109 is a test") + return "bar" +} + +// foo110 test function +func foo110() string { + fmt.Println("foo110 is a test") + return "bar" +} + +// foo111 test function +func foo111() string { + fmt.Println("foo111 is a test") + return "bar" +} + +// foo112 test function +func foo112() string { + fmt.Println("foo112 is a test") + return "bar" +} + +// foo113 test function +func foo113() string { + fmt.Println("foo113 is a test") + return "bar" +} + +// foo114 test function +func foo114() string { + fmt.Println("foo114 is a test") + return "bar" +} + +// foo115 test function +func foo115() string { + fmt.Println("foo115 is a test") + return "bar" +} + +// foo116 test function +func foo116() string { + fmt.Println("foo116 is a test") + return "bar" +} + +// foo117 test function +func foo117() string { + fmt.Println("foo117 is a test") + return "bar" +} + +// foo118 test function +func foo118() string { + fmt.Println("foo118 is a test") + return "bar" +} + +// foo119 test function +func foo119() string { + fmt.Println("foo119 is a test") + return "bar" +} + +// foo120 test function +func foo120() string { + fmt.Println("foo120 is a test") + return "bar" +} + +// foo121 test function +func foo121() string { + fmt.Println("foo121 is a test") + return "bar" +} + +// foo122 test function +func foo122() string { + fmt.Println("foo122 is a test") + return "bar" +} + +// foo123 test function +func foo123() string { + fmt.Println("foo123 is a test") + return "bar" +} + +// foo124 test function +func foo124() string { + fmt.Println("foo124 is a test") + return "bar" +} + +// foo125 test function +func foo125() string { + fmt.Println("foo125 is a test") + return "bar" +} + +// foo126 test function +func foo126() string { + fmt.Println("foo126 is a test") + return "bar" +} + +// foo127 test function +func foo127() string { + fmt.Println("foo127 is a test") + return "bar" +} + +// foo128 test function +func foo128() string { + fmt.Println("foo128 is a test") + return "bar" +} + +// foo129 test function +func foo129() string { + fmt.Println("foo129 is a test") + return "bar" +} + +// foo130 test function +func foo130() string { + fmt.Println("foo130 is a test") + return "bar" +} + +// foo131 test function +func foo131() string { + fmt.Println("foo131 is a test") + return "bar" +} + +// foo132 test function +func foo132() string { + fmt.Println("foo132 is a test") + return "bar" +} + +// foo133 test function +func foo133() string { + fmt.Println("foo133 is a test") + return "bar" +} + +// foo134 test function +func foo134() string { + fmt.Println("foo134 is a test") + return "bar" +} + +// foo135 test function +func foo135() string { + fmt.Println("foo135 is a test") + return "bar" +} + +// foo136 test function +func foo136() string { + fmt.Println("foo136 is a test") + return "bar" +} + +// foo137 test function +func foo137() string { + fmt.Println("foo137 is a test") + return "bar" +} + +// foo138 test function +func foo138() string { + fmt.Println("foo138 is a test") + return "bar" +} + +// foo139 test function +func foo139() string { + fmt.Println("foo139 is a test") + return "bar" +} + +// foo140 test function +func foo140() string { + fmt.Println("foo140 is a test") + return "bar" +} + +// foo141 test function +func foo141() string { + fmt.Println("foo141 is a test") + return "bar" +} + +// foo142 test function +func foo142() string { + fmt.Println("foo142 is a test") + return "bar" +} + +// foo143 test function +func foo143() string { + fmt.Println("foo143 is a test") + return "bar" +} + +// foo144 test function +func foo144() string { + fmt.Println("foo144 is a test") + return "bar" +} + +// foo145 test function +func foo145() string { + fmt.Println("foo145 is a test") + return "bar" +} + +// foo146 test function +func foo146() string { + fmt.Println("foo146 is a test") + return "bar" +} + +// foo147 test function +func foo147() string { + fmt.Println("foo147 is a test") + return "bar" +} + +// foo148 test function +func foo148() string { + fmt.Println("foo148 is a test") + return "bar" +} + +// foo149 test function +func foo149() string { + fmt.Println("foo149 is a test") + return "bar" +} + +// foo150 test function +func foo150() string { + fmt.Println("foo150 is a test") + return "bar" +} + +// foo151 test function +func foo151() string { + fmt.Println("foo151 is a test") + return "bar" +} + +// foo152 test function +func foo152() string { + fmt.Println("foo152 is a test") + return "bar" +} + +// foo153 test function +func foo153() string { + fmt.Println("foo153 is a test") + return "bar" +} + +// foo154 test function +func foo154() string { + fmt.Println("foo154 is a test") + return "bar" +} + +// foo155 test function +func foo155() string { + fmt.Println("foo155 is a test") + return "bar" +} + +// foo156 test function +func foo156() string { + fmt.Println("foo156 is a test") + return "bar" +} + +// foo157 test function +func foo157() string { + fmt.Println("foo157 is a test") + return "bar" +} + +// foo158 test function +func foo158() string { + fmt.Println("foo158 is a test") + return "bar" +} + +// foo159 test function +func foo159() string { + fmt.Println("foo159 is a test") + return "bar" +} + +// foo160 test function +func foo160() string { + fmt.Println("foo160 is a test") + return "bar" +} + +// foo161 test function +func foo161() string { + fmt.Println("foo161 is a test") + return "bar" +} + +// foo162 test function +func foo162() string { + fmt.Println("foo162 is a test") + return "bar" +} + +// foo163 test function +func foo163() string { + fmt.Println("foo163 is a test") + return "bar" +} + +// foo164 test function +func foo164() string { + fmt.Println("foo164 is a test") + return "bar" +} + +// foo165 test function +func foo165() string { + fmt.Println("foo165 is a test") + return "bar" +} + +// foo166 test function +func foo166() string { + fmt.Println("foo166 is a test") + return "bar" +}