github.com/jshiv/can-go@v0.2.1-0.20210224011015-069e90e90bdf/pkg/dbc/analysis/passes/messagenames/analyzer.go (about) 1 package messagenames 2 3 import ( 4 "go.einride.tech/can/internal/identifiers" 5 "go.einride.tech/can/pkg/dbc" 6 "go.einride.tech/can/pkg/dbc/analysis" 7 ) 8 9 func Analyzer() *analysis.Analyzer { 10 return &analysis.Analyzer{ 11 Name: "messagenames", 12 Doc: "check that message names are valid CamelCase identifiers", 13 Run: run, 14 } 15 } 16 17 func run(pass *analysis.Pass) error { 18 for _, def := range pass.File.Defs { 19 messageDef, ok := def.(*dbc.MessageDef) 20 if !ok { 21 continue // not a message 22 } 23 if !identifiers.IsCamelCase(string(messageDef.Name)) { 24 pass.Reportf(messageDef.Pos, "message names must be CamelCase") 25 } 26 } 27 return nil 28 }