mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2024-12-29 12:17:48 +00:00
protogen: camel-case "Foo.bar" as "FooBar" instead of "Foo_Bar".
Given: message Parent { message Child1 {} message child2 {} } Historic behavior is to generate child messages named: Parent_Child1 ParentChild2 Avoid adding an _ in the latter case. Change-Id: I49a6732655d64967b8c7bb7ad358ae54d294f7b4 Reviewed-on: https://go-review.googlesource.com/c/140898 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
This commit is contained in:
parent
21f62f4d53
commit
3863ee56b5
@ -136,6 +136,8 @@ func camelCase(s string) string {
|
||||
for ; i < len(s); i++ {
|
||||
c := s[i]
|
||||
switch {
|
||||
case c == '.' && i+1 < len(s) && isASCIILower(s[i+1]):
|
||||
// Skip over .<lowercase>, to match historic behavior.
|
||||
case c == '.':
|
||||
t = append(t, '_') // Convert . to _.
|
||||
case c == '_' && (i == 0 || s[i-1] == '.'):
|
||||
|
@ -18,8 +18,10 @@ func TestCamelCase(t *testing.T) {
|
||||
{"OneTwo", "OneTwo"},
|
||||
{"_", "X"},
|
||||
{"_a_", "XA_"},
|
||||
{"one.two", "One_Two"},
|
||||
{"one_two.three_four", "OneTwo_ThreeFour"},
|
||||
{"one.two", "OneTwo"},
|
||||
{"one.Two", "One_Two"},
|
||||
{"one_two.three_four", "OneTwoThreeFour"},
|
||||
{"one_two.Three_four", "OneTwo_ThreeFour"},
|
||||
{"_one._two", "XOne_XTwo"},
|
||||
{"SCREAMING_SNAKE_CASE", "SCREAMING_SNAKE_CASE"},
|
||||
{"double__underscore", "Double_Underscore"},
|
||||
|
Loading…
Reference in New Issue
Block a user