github.com/andrewsun2898/u-root@v6.0.1-0.20200616011413-4b2895c1b815+incompatible/cmds/core/elvish/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  }