By default, zprint will output maps with keys in sorted order.
(def map1 {:a :A :b :B :c :C :d :D :f :F :g :G :h :H :i :I :j :J :k :K :l :L :m :M})
(clojure.pprint/pprint map1)
{:m :M,
:l :L,
:k :K,
:g :G,
:c :C,
:j :J,
:h :H,
:b :B,
:d :D,
:f :F,
:i :I,
:a :A}
(czprint map1)
{:a :A,
:b :B,
:c :C,
:d :D,
:f :F,
:g :G,
:h :H,
:i :I,
:j :J,
:k :K,
:l :L,
:m :M}
You can specify your own ordering of map keys with an options map:
(czprint map1 {:map {:key-order [:k :i :m]}})
{:k :K,
:i :I,
:m :M,
:a :A,
:b :B,
:c :C,
:d :D,
:f :F,
:g :G,
:h :H,
:j :J,
:l :L}
You can use :key-ignore
or :key-ignore-silent
to get keys elided from
map output:
(czprint map1 {:map {:key-ignore-silent [:k :i :m]} :width 50})
{:a :A,
:b :B,
:c :C,
:d :D,
:f :F,
:g :G,
:h :H,
:j :J,
:l :L}
There are two additional options for maps that can be useful:
:key-color
The value of :key-color
is a map which relates keys that are
'constants' to a color in which to print that key. A constant is
a keyword, string, or number. This way you can have some keys
formatted in a color that is different from the color in which they
would normally be formatted based on their type. It can go well
with :key-order [:key1 :key2 ...]
which is another way to distinguish
a special key. You can place some keys at the front of the map and
you can also adjust their colors to meet your needs.
(czprint map1 {:map {:key-color {:k :blue}}})
; You can't see the colors because markdown loses the colors
; but you can see how to do it.
{:a :A,
:b :B,
:c :C,
:d :D,
:f :F,
:g :G,
:h :H,
:i :I,
:j :J,
:k :K,
:l :L,
:m :M}
:key-value-color
The value of :key-value-color
is a map which relates keys (that
don't have to be constants) to a color-map which is merged into the
current color-map, and is used when formatting the value of that key.
This way you can have the values of some keys formatted in a color that
is different from the color in which they would normally be formatted
based on their type.
(czprint map1 {:map {:key-value-color {:k {:keyword :green}}}})
; You can't see the colors because markdown loses the colors
; but you can see how to do it.
{:a :A,
:b :B,
:c :C,
:d :D,
:f :F,
:g :G,
:h :H,
:i :I,
:j :J,
:k :K,
:l :L,
:m :M}
You can place these option maps on individual calls. If you
are operating at the REPL, using set-options!
is frequently a good way
to set up useful formatting. For more enduring changes,
this options map can appear
anywhere an options map is accepted.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close