autocorrect 1.10.7

A linter and formatter for help you improve copywriting, to correct spaces, words, punctuations between CJK (Chinese, Japanese, Korean).
Documentation
indent = ${ (^" "+)? }
newline = ${ "\n" | "\r" }

other = ${ !(pair) ~ ANY }

string_key = _{ "\"" ~ key_str* ~ "\""  }
simple_key = _{ key_str* }
key_str = _{ !(newline | ":" | "\"" | "'") ~ ANY }

simple_value = _{ value_str* }
string_value = _{ ("\"" ~ (!(newline | "\"") ~ ANY)* ~ "\"") | ("'" ~ (!(newline | "'") ~ ANY)* ~ "'") }
value_str = _{ !(newline | "\"" | "'") ~ ANY }
key_part = _{ indent ~ key }

comment = ${ "#" ~ (!(newline) ~ ANY)* }


key = ${ (string_key | simple_key) ~ (":" ~ " "?) }
string = ${ string_value | simple_value }
pair = _{ key_part ~ string }
item = _{ (pair | comment | newline | other)+  }