diff --git a/README.md b/README.md index 614a07e..98f8185 100644 --- a/README.md +++ b/README.md @@ -208,7 +208,8 @@ Possible transform values are listed above in the [transformers](#transformers) The default value for `transform` flag is `noop` which means no transformation will be performed. If a prefix is provided via the `trimprefix` flag, it will be trimmed from the start of each name (before -it is transformed). If a name doesn't have the prefix it will be passed unchanged. +it is transformed). You can trim multiple prefixes by passing a comma separated list. +If a name doesn't have the prefix it will be passed unchanged. If a prefix is provided via the `addprefix` flag, it will be added to the start of each name (after trimming and after transforming). diff --git a/stringer.go b/stringer.go index 49c87fd..da03fdd 100644 --- a/stringer.go +++ b/stringer.go @@ -53,7 +53,7 @@ var ( altValuesFunc = flag.Bool("values", false, "if true, alternative string values method will be generated. Default: false") output = flag.String("output", "", "output file name; default srcdir/_string.go") transformMethod = flag.String("transform", "noop", "enum item name transformation method. Default: noop") - trimPrefix = flag.String("trimprefix", "", "transform each item name by removing a prefix. Default: \"\"") + trimPrefix = flag.String("trimprefix", "", "transform each item name by removing a prefix or comma separated list. Default: \"\"") addPrefix = flag.String("addprefix", "", "transform each item name by adding a prefix. Default: \"\"") linecomment = flag.Bool("linecomment", false, "use line comment text as printed text when present") ) @@ -774,9 +774,9 @@ func (g *Generator) buildOneRun(runs [][]Value, typeName string) { } // Arguments to format are: -// [1]: type name -// [2]: size of index element (8 for uint8 etc.) -// [3]: less than zero check (for signed types) +// [1]: type name +// [2]: size of index element (8 for uint8 etc.) +// [3]: less than zero check (for signed types) const stringOneRun = `func (i %[1]s) String() string { if %[3]si >= %[1]s(len(_%[1]sIndex)-1) { return fmt.Sprintf("%[1]s(%%d)", i) @@ -786,10 +786,10 @@ const stringOneRun = `func (i %[1]s) String() string { ` // Arguments to format are: -// [1]: type name -// [2]: lowest defined value for type, as a string -// [3]: size of index element (8 for uint8 etc.) -// [4]: less than zero check (for signed types) +// [1]: type name +// [2]: lowest defined value for type, as a string +// [3]: size of index element (8 for uint8 etc.) +// [4]: less than zero check (for signed types) const stringOneRunWithOffset = `func (i %[1]s) String() string { i -= %[2]s if %[4]si >= %[1]s(len(_%[1]sIndex)-1) {