Centralizing comment / description cleanup in chromedp-gen

This commit is contained in:
Kenneth Shaw 2017-12-01 11:00:44 +07:00
parent df58ab5964
commit fd310a9b84
3 changed files with 24 additions and 23 deletions

View File

@ -57,7 +57,7 @@ func (d *Domain) String() string {
// GetDescription returns the formatted description of the domain.
func (d *Domain) GetDescription() string {
return CodeRE.ReplaceAllString(d.Description, "")
return CleanDesc(d.Description)
}
// PackageName returns the Go package name to use for the domain.
@ -216,7 +216,6 @@ func (t Type) IDorName() string {
func (t Type) String() string {
desc := t.GetDescription()
if desc != "" {
desc, _ = MisspellReplacer.Replace(desc)
desc = " - " + desc
}
@ -225,7 +224,7 @@ func (t Type) String() string {
// GetDescription returns the cleaned description for the type.
func (t *Type) GetDescription() string {
return CodeRE.ReplaceAllString(t.Description, "")
return CleanDesc(t.Description)
}
// EnumValues returns enum values for the type.

View File

@ -19,12 +19,28 @@ const (
Base64EncodedDescriptionPrefix = "Base64-encoded"
)
// MisspellReplacer is the misspelling replacer
var MisspellReplacer *misspell.Replacer
// misspellReplacer is the misspelling replacer
var misspellReplacer *misspell.Replacer
func init() {
MisspellReplacer = misspell.New()
MisspellReplacer.Compile()
misspellReplacer = misspell.New()
misspellReplacer.Compile()
}
var badHTMLReplacer = strings.NewReplacer(
"&lt;", "<",
"&gt;", ">",
"&gt", ">",
)
// codeRE is a regexp to match <code> and </code> tags.
var codeRE = regexp.MustCompile(`<\/?code>`)
// CleanDesc cleans comments / descriptions of "<code>" and "</code>" strings
// and "`" characters, and fixes common misspellings.
func CleanDesc(s string) string {
s, _ = misspellReplacer.Replace(strings.Replace(codeRE.ReplaceAllString(s, ""), "`", "", -1))
return badHTMLReplacer.Replace(s)
}
// ForceCamel forces camel case specific to go.
@ -49,9 +65,6 @@ func ForceCamelWithFirstLower(s string) string {
return strings.ToLower(first) + s[len(first):]
}
// CodeRE is a regexp to match <code> and </code> tags.
var CodeRE = regexp.MustCompile(`<\/?code>`)
// resolve finds the ref in the provided domains, relative to domain d when ref
// is not namespaced.
func resolve(ref string, d *Domain, domains []*Domain) (DomainType, *Type, string) {
@ -123,9 +136,7 @@ func structDef(types []*Type, d *Domain, domains []*Domain, noExposeOverride, om
// add comment
if v.Type != TypeObject && v.Description != "" {
comment := CodeRE.ReplaceAllString(v.Description, "")
comment, _ = MisspellReplacer.Replace(comment)
s += " // " + comment
s += " // " + CleanDesc(v.Description)
}
}
if len(types) > 0 {

View File

@ -25,17 +25,10 @@ var keep = map[string]bool{
"JavaScript": true,
}
var badHTMLReplacer = strings.NewReplacer(
"&lt;", "<",
"&gt;", ">",
"&gt", ">",
)
// formatComment formats a comment.
func formatComment(s, chop, newstr string) string {
s = strings.TrimPrefix(s, chop)
s = strings.TrimSpace(internal.CodeRE.ReplaceAllString(s, ""))
s = badHTMLReplacer.Replace(s)
s = strings.TrimSpace(internal.CleanDesc(s))
l := len(s)
if newstr != "" && l > 0 {
@ -57,8 +50,6 @@ func formatComment(s, chop, newstr string) string {
}
s += "."
s, _ = internal.MisspellReplacer.Replace(s)
return wrap(s, commentWidth-len(commentPrefix), commentPrefix)
}