From 4c23cc2a98941844f25dae76daeec114c536716f Mon Sep 17 00:00:00 2001 From: mazrean Date: Sat, 4 Nov 2023 02:00:30 +0900 Subject: [PATCH] =?UTF-8?q?initialize=E9=96=A2=E6=95=B0=E5=88=A4=E5=AE=9A?= =?UTF-8?q?=E5=88=87=E3=82=8A=E5=87=BA=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- analysers/cache/analyser.go | 31 ++++++------------------------ pkg/analyze/initialize_func.go | 35 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 25 deletions(-) create mode 100644 pkg/analyze/initialize_func.go diff --git a/analysers/cache/analyser.go b/analysers/cache/analyser.go index 4532db8..6bd5c9b 100644 --- a/analysers/cache/analyser.go +++ b/analysers/cache/analyser.go @@ -7,9 +7,8 @@ import ( "go/format" "go/token" "reflect" - "strings" - "unicode" + "github.com/mazrean/isucon-go-tools/pkg/analyze" "github.com/mazrean/isucon-go-tools/pkg/suggest" "golang.org/x/tools/go/analysis" ) @@ -37,7 +36,6 @@ func run(pass *analysis.Pass) (any, error) { initializeFuncDecl *ast.FuncDecl initializeFuncName string ) -FILE_LOOP: for _, f := range pass.Files { for _, decl := range f.Decls { funcDecl, ok := decl.(*ast.FuncDecl) @@ -50,14 +48,11 @@ FILE_LOOP: continue } - words := camelCaseSplit(funcName.Name) - for _, word := range words { - if strings.ToLower(word) == initializeKeyword { - initializeFuncFile = f - initializeFuncDecl = funcDecl - initializeFuncName = funcName.Name - break FILE_LOOP - } + if analyze.IsInitializeFuncName(funcName.Name) { + initializeFuncFile = f + initializeFuncDecl = funcDecl + initializeFuncName = funcName.Name + break } } } @@ -159,17 +154,3 @@ FILE_LOOP: return importPkgs, nil } - -func camelCaseSplit(s string) []string { - var result []string - start := 0 - for i, r := range s { - if unicode.IsUpper(r) { - result = append(result, s[start:i]) - start = i - } - } - result = append(result, s[start:]) - - return result -} diff --git a/pkg/analyze/initialize_func.go b/pkg/analyze/initialize_func.go new file mode 100644 index 0000000..a033e97 --- /dev/null +++ b/pkg/analyze/initialize_func.go @@ -0,0 +1,35 @@ +package analyze + +import ( + "strings" + "unicode" +) + +const ( + initializeKeyword = "initialize" +) + +func IsInitializeFuncName(name string) bool { + words := camelCaseSplit(name) + for _, word := range words { + if strings.ToLower(word) == initializeKeyword { + return true + } + } + + return false +} + +func camelCaseSplit(s string) []string { + var result []string + start := 0 + for i, r := range s { + if unicode.IsUpper(r) { + result = append(result, s[start:i]) + start = i + } + } + result = append(result, s[start:]) + + return result +}