stathissideris/spec-provider

Consider using pretty-spec/pprint instead of clojure.pprint/pprint to pprint specs

jpmonettas opened this issue · 5 comments

Maybe https://github.com/jpmonettas/pretty-spec can help pprinting specs more similar to what you would write by hand.

Does pretty-spec support shortening namespaces so that clojure.spec.alpha/fspec becomes s/fspec in the printout? This is useful if you want to paste the output back into your code.

Added that to version 0.1.3

user> (pspec/pprint (s/form 'clojure.core/let)
                    {:ns-aliases {"clojure.spec.alpha" "s"
                                  "clojure.core.specs.alpha" "score"
                                  "clojure.core" nil}})

; (s/fspec
;  :args (s/cat :bindings :score/bindings :body (s/* any?))
;  :ret any?
;  :fn nil)
                                                 

I've started using this in the latest master for function specs and it works pretty well, my own code still as to convert :foo/bar to ::bar when appropriate. I'll try it for "data" specs as well. Thanks!

@stathissideris any news ?

I've started testing pretty-spec in trace.clj (the undocumented part of spec-provider that attempts to deal with inferring specs of functions - not ready yet). I thought that I would release both features together, but function specs are taking a little longer than I expected, so maybe it would be worth to go for pretty-spec independently. Thanks for reminding me!