zprint is a library and command line tool providing a variety of pretty printing capabilities for both Clojure code and Clojure/EDN structures. It can meet almost anyone's needs. As such, it supports a number of major source code formattng approaches.
In addition, zprint is very handy to use at the REPL.
Maybe one of the existing "styles" will meet your needs. All you have to
do is put {:style ...}
on the command line or as the third argument
to a zprint call. For example, {:style :community}
or
{:style :respect-bl}
.
Some commonly used styles:
quote
, deref
, var
, unquote
in structuresLeiningen (via Clojars)
zprint has been tested in each of the following environments:
lumo
1.10.1planck
2.24.0It requires tools.reader
at least 1.0.5, which all of the environments
above contain.
The last zprint release built with Clojure 1.8 was [zprint "0.4.15"].
In addition to the zprint dependency, you also need to include the following library when using Clojure 1.8:
[clojure-future-spec "1.9.0-alpha17"]
:style
quote
, deref
, var
, unquote
in structureslet
binding vectorscond
, assoc
pairsA number of folks have contributed to zprint, not all of whom show up on GitHub because I have integrated the code or suggestions manually. Thanks for all of the great contributions!
--url
and --url-only
: @coltnz:respect-bl
: @griffis:option-fn
and :fn-format
for enhanced vector formatting: @milankinenspec.cljc
: @QuezionThanks to everyone who has contributed fixes as well as everyone who has reported an issue. I really appreciate all of the help making zprint better for everybody!
At the core of zprint
is the rewrite-clj
library by Yannick
Scherer, which will parse Clojure source into a zipper. This is a
great library! I would not have attempted zprint
if rewrite-clj
didn't exist to build upon. The Clojurescript port relies on Magnus
Rundberget's port of rewrite-clj
to Clojurescript, rewrite-cljs
.
It too worked with no issues when porting to Clojurescript!
Copyright © 2016-2020 Kim Kinnear
Distributed under the MIT License. See the file LICENSE for details.
Can you improve this documentation? These fine people already did:
Kim Kinnear, Quest Yarbrough, vemv, Andrea Richiardi & Brian HurlowEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close