I've been catching up to date with the recent-ish changes to the 'modern' indent spec tuple format (never knew it was a thing in cljfmt this entire time :o) And it occured to me that this is one of the rare cases we'd be able to use elisp vector literals like [[:block 1] [:inner 2 0]] and get 100% syntax parity with Clojure? We'd get to avoid the need for quotes like '((:block 1)) and have it be more distinct from the legacy syntax, and I think the usual weirdness around eval semantics is moot since no one's dynamically splicing values into these literals
on second thought maybe lists still make sense as an internal representation, easier to manipulate and bencode etc.. 🤔 But we could do a normalization step in places like put-clojure-indent to accept the vector form in addition to quoted-lists? And prefer it in the docstrings etc. - I'm thinking that might be a tiny win for consistency with non-Emacs contexts like the clj-format docs, if it's to be adopted as a cross-platform standard
@bozhidar any thoughts - I was thinking of opening a gh issue it's a bit spread out over multiple repos
I’m open to discussing this, although we should keep in mind how rare vectors are in Elisp code. But I get the point that they might be useful in this context, and at least they’ll look familiar to Clojure programmers.