github.com/xiaq/elvish@v0.12.0/util/camel_to_dashed.go (about) 1 package util 2 3 import ( 4 "bytes" 5 "unicode" 6 ) 7 8 // CamelToDashed converts a CamelCaseIdentifier to a dash-separated-identifier, 9 // or a camelCaseIdentifier to a -dash-separated-identifier. 10 func CamelToDashed(camel string) string { 11 var buf bytes.Buffer 12 for i, r := range camel { 13 if (i == 0 && unicode.IsLower(r)) || (i > 0 && unicode.IsUpper(r)) { 14 buf.WriteRune('-') 15 } 16 buf.WriteRune(unicode.ToLower(r)) 17 } 18 return buf.String() 19 }