text := import("text")
// `match` is the rule's matched text.
made := text.re_replace(`([A-Z]\w+)([A-Z]\w+)`, match, `$1-$2`)
made = text.replace(made, "-", "_", 1)
made = text.to_lower(made)
// `suggestions` is what Vale reads back.
suggestions := [made]extends: existence
message: "'%s' should be in snake_case."
nonword: true
level: error
action:
name: suggest
params:
- CamelToSnake.tengo
tokens:
- '[A-Z]\w+[A-Z]\w+'