From 7bbe88f99fd1835eaa3f4fa044133b8051a19e1f Mon Sep 17 00:00:00 2001 From: "s.kamardin" Date: Fri, 1 Apr 2016 14:44:31 +0300 Subject: [PATCH] fix to camelToSnake function to handle properly Some_Snake_Case --- gen/generator.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gen/generator.go b/gen/generator.go index 068cf73..4158c02 100644 --- a/gen/generator.go +++ b/gen/generator.go @@ -299,6 +299,7 @@ func camelToSnake(name string) string { multipleUpper := false var lastUpper rune + var beforeUpper rune for _, c := range name { // Non-lowercase character after uppercase is considered to be uppercase too. @@ -312,7 +313,7 @@ func camelToSnake(name string) string { firstInRow := !multipleUpper lastInRow := !isUpper - if ret.Len() > 0 && (firstInRow || lastInRow) { + if ret.Len() > 0 && (firstInRow || lastInRow) && beforeUpper != '_' { ret.WriteByte('_') } ret.WriteRune(unicode.ToLower(lastUpper)) @@ -328,6 +329,7 @@ func camelToSnake(name string) string { ret.WriteRune(c) lastUpper = 0 + beforeUpper = c multipleUpper = false }