fix formatting of auto-gensym in Clojure/Fennel
In Clojure/Fennel syntax, # has double use:
- prefix for sets/hashfn, respectively
- suffix for auto-gensym
Prefixes are special to Parkour; upon encountering one, the parser knows
that a new sexp starts, even if there was no whitespace before it -
asdf,qwer are two sexps ("asdf" and ",qwer").
This is similar to how parens are enough to tell a list from the sexps
surrounding it - a(b c)d are atom, list, atom.
The feature here is that the autoformatter could get all the whitespace
right for you, while you are typing, or keep you from worsening it.
Unfortunately, my assumptions about prefixes were wrong; in some dialects
you are allowed to have prefix chars as part of an identifier, and in
others (Clojure/Fennel) - it is even official syntax (for auto-gensym).
Introducing "weak prefixes" makes it possible to selectively disable the
whitespace autocorrect around some of the prefixes.
Note that weak_prefix should be a subset of macro_prefix.