Skip to content

Commit d9d0ba0

Browse files
authored
Generate Go language data structure name in PascalCase style (#95)
1 parent 8c60951 commit d9d0ba0

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

genGo.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,15 @@ func (gen *CodeGenerator) GenGo() error {
9595
return err
9696
}
9797

98+
func splitter(r rune) bool {
99+
return strings.ContainsRune(":.-_", r)
100+
}
101+
98102
func genGoFieldName(name string, unique bool) (fieldName string) {
99-
for _, str := range strings.Split(name, ":") {
103+
for _, str := range strings.FieldsFunc(name, splitter) {
100104
fieldName += MakeFirstUpperCase(str)
101105
}
102-
var tmp string
103-
for _, str := range strings.Split(fieldName, ".") {
104-
tmp += MakeFirstUpperCase(str)
105-
}
106-
fieldName = tmp
107-
fieldName = strings.Replace(strings.Replace(fieldName, "-", "", -1), "_", "", -1)
106+
108107
if unique {
109108
fieldNameCount[fieldName]++
110109
if count := fieldNameCount[fieldName]; count != 1 {
@@ -119,10 +118,9 @@ func genGoFieldType(name string) string {
119118
return name
120119
}
121120
var fieldType string
122-
for _, str := range strings.Split(name, ".") {
121+
for _, str := range strings.FieldsFunc(name, splitter) {
123122
fieldType += MakeFirstUpperCase(str)
124123
}
125-
fieldType = strings.Replace(MakeFirstUpperCase(strings.Replace(fieldType, "-", "", -1)), "_", "", -1)
126124
if fieldType != "" {
127125
return "*" + fieldType
128126
}

0 commit comments

Comments
 (0)