rewrite-clj

https://github.com/clj-commons/rewrite-clj
lread 2020-11-16T15:22:24.089300Z

Thanks for early feedback @borkdude, much appreciated! Yeah that section is part of it, but the https://github.com/lread/rewrite-cljc-playground/blob/lread-ns-kw-map/doc/design/01-merging-rewrite-clj-and-rewrite-cljs.adoc#namespaced-maps-and-keywords-in-progress describes current and new behaviour. I think it is a bit much for me to ask for a review in its current form, so I will work to slim it down. > It feels more natural to me to have `(map-node children)` and `(map-node children opts)` > I like it when args don’t shift position when you have a +1 arity. I think I agree (or don’t disagree!). The args in the rewrite-clj existing create fns seem to typically be in the same order they appear in original source code, and I think that’s what I was trying to mimic. > I’m not too fond of the `{:type :literal}` approach. I think auto-resolved is the appropriate term for it. When it’s not auto-resolved, it doesn’t refer to a namespace alias. > So I would go with opts being `{:auto-resolved true/false :prefix "..."}` and store these as simple fields (not maps) in the defrecord type: > (defrecord MapNode [children prefix auto-resolved]) Hmm…yeah. The term “qualified” comes from Alex, but the term “literal” came from me, so probably not terribly community friendly. Yeah… your approach works for me. I think I was trying to convey intent, but doing so with my own custom terms doesn’t help with that goal. Much thanks, I’ll incorporate your feedback and ping back when I’ve done some slimming.

❤️ 1