Closed mauricioszabo closed 2 years ago
Thanks for asking for help with this. I am sorry that zprint isn't working for you! I build the Linux version using RedHat linux (using docker), so I don't have lot of experience with Ubuntu Linux. I have had a couple of issues submitted where zprint was being used on Ubuntu Linux, and it was working well enough for those folks, so I don't think that it just doesn't work at all on Ubuntu. I will see what I can do to get a version of Ubuntu running with docker so that I can try to duplicate your experience and then debug the problem. I am currently away from the machine on which I can reliably run Intel-based Linux, but I'll see what I can do nevertheless.
From the information you have given me, I'm currently suspecting that there is something going on with line endings. zprint tries to sense what line endings are used in the input file. It senses the line endings in the input file by examining the line endings in the first 2000 lines, and uses the predominant line ending found when creating line endings for the output. From the limited information that I have, I am currently suspecting something is amiss with this processing.
There are several simple things you can do to help me figure out what is going on and, possibly, get the current version working for you (or at least fix the problem in the next release).
First, you have encountered a documentation error for which I apologize. The instructions to test the installation with zprint -e
were once correct but are now in error. I have changed the -e
switch to output only the local changes to the configuration in an effort to be more user friendly. If you run the following:
zprint --explain-all
that should output what -e
used to output, and will give us a better idea of how much of zprint is working. Note the two dashes in --explain-all
! Please include the (hopefully massive) output in the issue.
Second, if you do:
zprint -h
that should also output the help text, and let us know a bit more about how things are working. Please also include this output in the issue.
Finally, and most importantly, if you could take a small piece of Clojure code and feed it through zprint, and place the input and output results in this issue, it would be a huge help in figuring out what is going wrong. By short I mean 15-20 lines of syntactically correct (but not necessarily executable) code so I can see what is actually happening. If you could also include the output of:
od -c <your-zprint-input-file
od -c <zprint-output-file
it would go a long way toward helping me diagnose and fix this problem. I am guessing that there is some problem with how line endings are handled, if everything looks like it ends up on the same line.
Thanks very much for your help!
Ok, so zprint -h
gives me:
╰─>$ zprint -h
zprint-1.1.2
zprint <options-map> <input-file >output-file
zprint <switches> <input-file >output-file
zprint -w input-and-output-file(s)
zprint <options-map> -w input-and-output-file(s)
zprint <switches> -w input-and-output-file(s)
Where zprint is any of:
zprintm-1.1.2
zprintl-1.1.2
java -jar zprint-filter-1.1.2
<options-map> is a Clojure map containing zprint options. Must be first.
Note that since it contains spaces, it must be
wrapped in quotes, for example:
'{:width 120}'
Use the -e switch to see the total options
map, which will show you what is configurable.
<switches> which do no formatting, only one allowed:
-h --help Output this help text.
-v --version Output the version of zprint.
-e --explain Output non-default configuration values, showing
where any non-default values where set.
--explain-all Output full configuration, including all default
values, while showing where non-default values set.
<switches> which control configuration, only one allowed:
-d --default Accept no configuration input.
-u --url URL Load options from URL.
--url-only URL Load only options found from URL,
ignore all .zprintrc, .zprint.edn files.
<switches> which process named files: May follow a configuration switch
or an options map, but not both!
-w --write FILE read, format, and write to FILE (or FILEs),
-w *.clj is supported.
-c --check FILE read and check format of FILE (or FILEs)
-c *.clj is supported.
Variations on -w, --write and -c, -check:
-lw --list-write FILE like -w, but indicate which files processed.
-fw --formatted-write FILE like -w, but indicate which files changed.
-sw --summary-write FILE like -w, but include a summary of the number
of files processed and how many required a
format change, as well as any errors.
Combinations are allowed, w/write and c/check must always be last,
and order matters for -- switches. Examples:
-lfw, -lfsw, -fsw, -flw, -sflw, etc.
--list-formatted-write, --list-formatted-summary-write, etc.
All combinations of -w and --write switches are also allowed
with -c and --check switches:
-lfc, -lfsc, -fsc, -flc, -sflc, etc.
--list-formatted-check, --list-formatted-summary-check, etc.
The -w, -c, and -e switches are the only switches where you may also
have an options map!
And zprint --explain-all
:
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:array
{:hex?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:atom
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:binding
{:flow?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:force-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2.0},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:justify
{:ignore-for-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 20},
:no-justify
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{"_"}}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:cache
{:directory
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value ".zprint"},
:location
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value "HOME"}},
:color-map
{:brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:bracket
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :purple},
:char
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:comma
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
:comment
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :green},
:deref
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:false
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :blue},
:hash-brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:hash-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :green},
:keyword
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :magenta},
:nil
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:none
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:number
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :purple},
:paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :green},
:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:regex
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:symbol
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:syntax-quote-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:true
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black},
:uneval
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :magenta},
:user-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :black}},
:color?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:comment
{:count?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:inline-align-style
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :aligned},
:inline?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:cwd-zprintrc?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:delay
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:extend
{:flow?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:force-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000.0},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:modifiers
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{"static"}},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:fn-force-nl
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{:arg1-force-nl
:arg1-force-nl-body
:flow :flow-body
:force-nl
:force-nl-body :noarg1
:noarg1-body}},
:fn-gt2-force-nl
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{:binding :gt2-force-nl
:pair-fn}},
:fn-gt3-force-nl
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{:arg1-pair
:arg1-pair-body
:gt3-force-nl}},
:fn-map
{"->"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:noarg1-body
{:list {:constant-pair?
false},
:next-inner
{:list
{:constant-pair?
true}}}]},
"->>"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:force-nl-body
{:list {:constant-pair?
false},
:next-inner
{:list
{:constant-pair?
true}}}]},
":import"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :force-nl-body},
:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:none
{:list {:hang? false,
:indent 1},
:next-inner
{:list {:hang? true,
:indent
2}}}]},
":require"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :force-nl-body},
"="
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :hang},
"alt"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :pair-fn},
"and"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :hang},
"apply"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"are"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value [:guided
{:style
:areguide}]},
"as->"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2},
"assert-args"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :pair-fn},
"assoc"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-pair},
"assoc-in"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"binding"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"case"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-pair-body},
"cat"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :force-nl},
"catch"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2},
"comment"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :flow-body},
"cond"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :pair-fn},
"cond->"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-pair-body},
"cond-let"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :pair-fn},
"condp"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2-pair},
"def"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"defc"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-mixin},
"defcc"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-mixin},
"defcs"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-mixin},
"defexpect"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:arg1-body
{:next-inner
{:style
:respect-nl-off},
:style :respect-nl}]},
"defmacro"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"defmethod"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2},
"defmulti"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"defn"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"defn-"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"defproject"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value [:arg2-pair
{:vector
{:wrap?
false}}]},
"defprotocol"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:none-body
{:style
:defprotocolguide}]},
"defrecord"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2-extend-body},
"deftest"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"deftype"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2-extend-body},
"defui"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-extend},
"do"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none-body},
"doseq"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"dotimes"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"doto"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"extend"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-extend},
"extend-protocol"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-extend},
"extend-type"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-extend},
"fdef"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-force-nl},
"filter"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"filterv"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"fn"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :fn},
"fn*"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :fn},
"for"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"if"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"if-let"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"if-not"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"if-some"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"interpose"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"let"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"letfn"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"loop"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"map"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"mapcat"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"mapv"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"match"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-pair-body},
"matchm"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-pair-body},
"not="
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :hang},
"ns"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"or"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :hang},
"proxy"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2-fn},
"reduce"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"reify"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :extend},
"remove"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"reset!"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2},
"s/and"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :gt2-force-nl},
"s/def"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:arg1-body
{:list
{:constant-pair-min
2}}]},
"s/fdef"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:arg1-body
{:list
{:constant-pair-min
2}}]},
"s/or"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :gt2-force-nl},
"some->"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :force-nl-body},
"some->>"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :force-nl-body},
"swap!"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg2},
"try"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none-body},
"when"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"when-first"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"when-let"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"when-not"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"when-some"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"with-bindings"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"with-bindings*"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1},
"with-local-vars"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"with-meta"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body},
"with-open"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"with-out-str"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none-body},
"with-redefs"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :binding},
"with-redefs-fn"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :arg1-body}},
:fn-name
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:fn-obj
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:format
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :on},
:future
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:input
{:range
{:end
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:start
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}}},
:list
{:constant-pair-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:constant-pair-min
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 4},
:constant-pair?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:hang-avoid
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0.5},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2.0},
:hang-size
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:indent-arg
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:indent-only-style
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :input-hang},
:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:option-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:pair-hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:replacement-string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:wrap-after-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-coll?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:map
{:comma?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:flow?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:force-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000.0},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:justify
{:ignore-for-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 20},
:no-justify
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:key-color
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:key-depth-color
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:key-ignore
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:key-ignore-silent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:key-no-sort
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{"..."}},
:key-order
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:key-value-color
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:lift-ns-in-code?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:lift-ns?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:sort-in-code?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:sort?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:unlift-ns?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:max-depth
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000000},
:max-depth-string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value "##"},
:max-hang-count
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 4},
:max-hang-depth
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 300},
:max-hang-span
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 4},
:max-length
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000000},
:object
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1}},
:old?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:output
{:elide
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:focus
{:surround
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:zloc?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:lines
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}},
:pair
{:flow?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:force-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2.0},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:justify
{:ignore-for-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{":else"}},
:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 20},
:no-justify
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:pair-fn
{:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2.0},
:hang-size
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 10},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:parallel?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:parse
{:ignore-if-parse-fails
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value #{"..."}},
:interpose
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:left-space
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :drop}},
:parse-string-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:parse-string?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:promise
{:object?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:reader-cond
{:force-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000.0},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:key-order
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:sort-in-code?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:sort?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}},
:record
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:record-type?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:to-string?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:script
{:more-options
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil}},
:search-config?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:set
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:sort-in-code?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:sort?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-after-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-coll?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:spec
{:docstring?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:style nil,
:style-map
{:all-hang
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Enable hangs everywhere (which they are by default)"},
:extend
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:list
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:map
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:pair
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:pair-fn
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:reader-cond
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:record
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:areguide
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Allow modification of areguide in :fn-map"},
:list
{:option-fn
#<Fn@7adec276
zprint.guide/areguide>}},
:backtranslate
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Turn quote, deref, var, unquote into reader macros"},
:fn-map
{"clojure.core/deref"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:replace-w-string
{}
{:list
{:replacement-string
"@"}}]},
"clojure.core/unquote"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:replace-w-string
{}
{:list
{:replacement-string
"~"}}]},
"quote"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:replace-w-string
{}
{:list
{:replacement-string
"'"}}]},
"var"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:replace-w-string
{}
{:list
{:replacement-string
"#'"}}]}}},
:binding-nl
{:binding
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add a blank line after every value that flowed"}},
:binding-nl-all
{:binding
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add a blank line between every pair"}},
:community
{:binding
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Modify defaults to format to 'community' approach"},
:fn-map
{"apply"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"assoc"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"filter"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"filterv"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"map"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"mapv"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"reduce"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"remove"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
"with-meta"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none-body}},
:list
{:indent-arg
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1}},
:map
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0}},
:pair
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0}}},
:dark-color-map
{:color-map
{:brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:bracket
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:char
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-cyan},
:comma
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-white},
:comment
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-black},
:deref
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:false
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-red},
:hash-brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:hash-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:keyword
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-blue},
:nil
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:none
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:number
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:regex
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-cyan},
:string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-green},
:symbol
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-white},
:syntax-quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:syntax-quote-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:true
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:uneval
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :bright-red},
:unquote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:unquote-splicing
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:user-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"A color map that is pretty good for dark backgrounds"},
:uneval
{:color-map
{:brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:bracket
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:char
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-cyan},
:comma
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-white},
:comment
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-black},
:deref
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :red},
:false
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-red},
:hash-brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:hash-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:keyword
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-blue},
:nil
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:none
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:number
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:regex
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-cyan},
:string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-green},
:symbol
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-white},
:syntax-quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:syntax-quote-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :white},
:true
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-magenta},
:uneval
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-red},
:unquote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:unquote-splicing
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow},
:user-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
:bright-yellow}}}},
:defprotocolguide
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Allow alteration of defprotocol in :fn-map"},
:list
{:option-fn
#<Fn@5389bcc5
zprint.guide/defprotocolguide>}},
:extend-nl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add a blank line between protocols"},
:extend
{:flow?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:fast-hang
{:binding
{:ha-width-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value -600},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Speed up formatting of very deeply nested structures"},
:extend
{:ha-width-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value -600},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100}},
:list
{:ha-width-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value -300},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100}},
:map
{:ha-depth-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 15},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0}},
:pair
{:ha-width-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value -150},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 20}},
:vector-fn
{:ha-width-factor
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value -300},
:hang-accept
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100}}},
:guideguide
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"output guides themselves, experimental"},
:vector
{:option-fn
#<Fn@e3a1736
zprint.guide/guideguide>}},
:hiccup
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Format vectors containing hiccup information better"},
:vector
{:option-fn
#<Fn@5f685d55
zprint.config/fn__10442>,
:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:vector-fn
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:indent-arg
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1}}},
:how-to-ns
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Make newlines and indentation match 'how to ns'"},
:fn-map
{"ns"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:arg1-body
{:fn-map
{":import"
[:flow
{:list
{:hang?
true}}],
":require"
:flow},
:list {:hang?
false,
:indent-arg
1}}]}}},
:indent-only
{:comment
{:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Enable indent only for every type of structure"},
:list
{:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:map
{:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:set
{:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:vector
{:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:jrequireguide
{:list
{:option-fn
#<Fn@72d6578
zprint.guide/jrequireguide>}},
:justified
{:binding
{:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Justify everything possible"},
:map
{:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:pair
{:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:justified-original
{:binding
{:justify
{:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Justify everything using pre-1.1.2 approach"},
:map
{:justify
{:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:pair
{:justify
{:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1000}},
:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:keyword-respect-nl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"When a vector starts with a :keyword, :respect-nl in it"},
:vector
{:option-fn-first
#<Fn@115f604a
zprint.config/fn__10440>}},
:map-nl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add newline after every value that flows"},
:map
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:map-nl-all
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add newline between all map pairs"},
:map
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:zprint.config/indent
0}},
:moustache
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Format moustache elements nicely"},
:fn-map
{"app"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:flow
{:style
:vector-pairs}]}}},
:no-hang
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Turn off hang for every structure"},
:extend
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:list
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:map
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:pair
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:pair-fn
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:reader-cond
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:record
{:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}}},
:odr
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"justify columns of rules, experimental"},
:vector
{:option-fn
#<Fn@2f441b88
zprint.guide/odrguide>}},
:pair-nl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add a blank line after every value that flowed"},
:pair
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:pair-nl-all
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Add a blank line between every pair"},
:pair
{:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0},
:nl-separator-all?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:quote-wrap
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Wrap quoted lists to right margin, like vectors"},
:fn-map
{:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:wrap
{:list {:indent 1},
:next-inner
{:list
{:indent
2}}}]}}},
:require-justify
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Justify namespaces in :require"},
:fn-map
{":require"
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
[:flow
{:style
[:jrequireguide
:rj-var]}]}}},
:require-pair
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Clarify namespaces in :require"},
:fn-map
{":require"
[:none
{:vector
{:option-fn
#<Fn@55b3ab39
zprint.config/fn__10438>}}]}},
:respect-bl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Enable respect blank lines for every type"},
:list
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:map
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:set
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:vector
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:respect-bl-off
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Disable respect blank lines for every type"},
:list
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:map
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:set
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:vector
{:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}}},
:respect-nl
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Enable respect newlines for every type"},
:list
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:map
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:set
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:vector
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}},
:respect-nl-off
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Disable respect newline for every type"},
:list
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:map
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:set
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}},
:vector
{:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}}},
:rj-var
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Set max-variance for :require-justify"},
:pair
{:justify
{:max-variance
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 20}}}},
:rod
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Rules of defn, experimental. Very likely to change."},
:fn-map
{"defn"
[:guided
{:list
{:option-fn
#<Fn@18dae33b
zprint.guide/rodguide>}}]}},
:signature1
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"defprotcol signatures with doc on newline, experimental"},
:list
{:option-fn
#<Fn@6a7bccad
zprint.guide/signatureguide1>}},
:sort-dependencies
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"sort dependencies in lein defproject files"},
:list
{:return-altered-zipper
[1 defproject
#<Fn@386ac32b
zprint.rewrite/sort_dependencies>]}},
:vector-pairs
{:doc
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value
"Consider vectors 'constants' for constant pairing"},
:list
{:constant-pair-fn
#<Fn@5589f4b1
zprint.config/fn__10431>,
:constant-pair-min
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1}},
:next-inner
{:list
{:constant-pair-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:constant-pair-min
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 4}},
:pair
{:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false}}},
:pair
{:justify?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}}}},
:tab
{:expand?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:size
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 8}},
:uneval
{:color-map
{:brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:bracket
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:char
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :magenta},
:comma
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :none},
:comment
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :green},
:deref
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:false
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :cyan},
:hash-brace
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:hash-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:keyword
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:nil
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:none
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:number
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:quote
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:regex
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:string
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:symbol
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :cyan},
:syntax-quote-paren
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:true
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :yellow},
:uneval
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :magenta},
:user-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :cyan}}},
:url
{:cache-dir
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value "urlcache"},
:cache-secs
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 300}},
:user-fn-map {},
:vector
{:binding?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:fn-format
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:option-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:option-fn-first
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:wrap-after-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-coll?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:wrap?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:vector-fn
{:constant-pair-fn
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:constant-pair-min
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 4},
:constant-pair?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:hang-avoid
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 0.5},
:hang-diff
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 1},
:hang-expand
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2.0},
:hang-size
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 100},
:hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:indent
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 2},
:indent-arg
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value nil},
:indent-only-style
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value :input-hang},
:indent-only?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:pair-hang?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:respect-bl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:respect-nl?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value false},
:wrap-after-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-coll?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true},
:wrap-multi?
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value true}},
:version "zprint-1.1.2",
:width
{:set-by
"Home directory file: /home/mauricio/.zprintrc",
:value 35}}```
So I did try with the following code:
```clojure
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something"
basas "Lol"]
(+ a basas)))
And it formatted as this:
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something" basas "Lol"] (+ a basas)))
With a bigger file like this:
(defn some-fun [a b]
(-> a
inc
inc
(+ 2)
(+ 3)
(- b)
str
(str/split-lines)
(->>
(apply concat)
to-json
(subs 3)
(subs 2 2)
)
)
)
It works as expected:
(defn some-fun
[a b]
(-> a
inc
inc
(+ 2)
(+ 3)
(- b)
str
(str/split-lines)
(->> (apply concat)
to-json
(subs 3)
(subs 2 2))))
So I decided to put the two functions in the same file:
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something"
basas "Lol"]
(+ a basas)))
(defn some-fun [a b]
(-> a
inc
inc
(+ 2)
(+ 3)
(- b)
str
(str/split-lines)
(->>
(apply concat)
to-json
(subs 3)
(subs 2 2)
)
)
)
And the same problem occurs:
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something" basas "Lol"] (+ a basas)))
(defn some-fun
[a b]
(-> a
inc
inc
(+ 2)
(+ 3)
(- b)
str
(str/split-lines)
(->> (apply concat)
to-json
(subs 3)
(subs 2 2))))
The results for od
:
╰─>$ od -c </tmp/foo.clj
0000000 ( d e f n s o m e - f u n \n
0000020 " S o m e d o c s t r i n g
0000040 t h a t ' s v e r y , v e
0000060 r y , v e r y l a r g e i
0000100 n d e e d , b u t a n y w a
0000120 y , m a y b e i t ' l l h
0000140 e l p m e d i a g n o s e
0000160 w h a t ' s w r o n g . . . "
0000200 \n [ ] \n \n ( l e t [ a
0000220 " s o m e t h i n g " \n
0000240 b a s a s " L o l "
0000260 ] \n \n ( +
0000300 a b a s a s ) ) ) \n \n ( d e
0000320 f n s o m e - f u n [ a b
0000340 ] \n ( - > a \n
0000360 i n c \n i n c \n
0000400 ( + 2 ) \n ( +
0000420 3 ) \n ( - b ) \n
0000440 s t r \n ( s t r
0000460 / s p l i t - l i n e s ) \n
0000500 ( - > > \n (
0000520 a p p l y c o n c a t ) \n
0000540 t o - j s o n \n
0000560 ( s u b s 3 ) \n
0000600 ( s u b s 2 2 ) \n
0000620 ) \n )
0000640 \n ) \n \n
0000657
╰─>$ od -c </tmp/formatted.clj
0000000 ( d e f n s o m e - f u n \n
0000020 " S o m e d o c s t r i n g
0000040 t h a t ' s v e r y , v e
0000060 r y , v e r y l a r g e i
0000100 n d e e d , b u t a n y w a
0000120 y , m a y b e i t ' l l h
0000140 e l p m e d i a g n o s e
0000160 w h a t ' s w r o n g . . . "
0000200 \n [ ] \n ( l e t [ a
0000220 " s o m e t h i n g " b a s a
0000240 s " L o l " ] ( + a b a
0000260 s a s ) ) ) \n \n ( d e f n s o
0000300 m e - f u n \n [ a b ] \n
0000320 ( - > a \n i n c
0000340 \n i n c \n
0000360 ( + 2 ) \n ( +
0000400 3 ) \n ( - b ) \n
0000420 s t r \n (
0000440 s t r / s p l i t - l i n e s )
0000460 \n ( - > > ( a p p
0000500 l y c o n c a t ) \n
0000520 t o - j s o n \n
0000540 ( s u b s 3
0000560 ) \n ( s u
0000600 b s 2 2 ) ) ) ) \n \n
0000614
Thank you for gathering the information I requested. It is very helpful.
One question -- do you actually have a file /home/mauricio/.zprintrc
? If so, what is in it?
Given the information that you have included in this issue, I now think I know what's going on now, but I could be wrong. Please excuse me if I explain things that you already know and/or if I'm completely wrong as to what is going on here.
I think that you are concerned that zprint formatted this function:
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something"
basas "Lol"]
(+ a basas)))
into this:
(defn some-fun
"Some docstring that's very, very, very large indeed, but anyway, maybe it'll help me diagnose what's wrong..."
[]
(let [a "something" basas "Lol"] (+ a basas)))
that that you didn't want this form:
(let [a "something" basas "Lol"] (+ a basas)))
to all be on the same line.
If I am correct in that, then I'm guessing that you wanted zprint to indent your function, not format your function.
Some background...
zprint has three basic modes of operation. At its base, zprint is a Clojure(script) formatter -- it essentially ignores all incoming newlines and formats the Clojure code in order to gain maximum readability. This formatting includes placing an expression on one line if it will fit on one line. It does this in order to fit the maximum amount of readable code into whatever vertical space you allow for your editor, in order to let you see as much code as possible on the screen at one time. The goal is to reduce the cognitive load by letting you see as much code as is readably possible at one time. That is what "classic zprint" does.
Now, some people don't like that approach, so zprint supports two other formatting regimes. One is "respect newlines", which will never remove a newline that was there in the original source, but may add additional newlines in order to fit the code into the :width
that is specified in the configuration (which defaults to 80). You get "respect newlines" behavior by adding {:style :respect-nl}
to the command line for zprint.
The third basic regime is "indent only", and this regime will never add or remove newlines. It will simply indent the lines in the file as well as possible given the way that it was originally input. You get "indent only" behavior by adding {:style :indent-only}
to the command line before the file.
You may find that the "respect newlines" approach is more what you were expecting, though that approach will also leave the hanging )
that you had in your second function ... hanging. But mostly people don't do that, so it isn't a problem.
Generally, if a function (or expression) fits on one line, it is short enough that it can be understood on one line, so that "classic zprint" formatting is widely used. That said, if there is some particular function (for example, let
) that you want to ensure never formats on one line, zprint can easily be configured to make that happen.
If you haven't already, you might try zprint on a large, realistic, source file and see what you get and if it is what you want. If not, I would be happy to work with you to configure zprint to give you the formatting (or indenting) that you want.
Right, so I'll try to add a little bit more info: I opened this issue mostly because what you described seemed inconsistent with things like:
(defn other-fun
[]
(->> (range)
(map inc)
(reduce +)))
zprint
will happily keep code, while putting let
in a single line.
But mostly, what I want to do is to make zprint
format code for a team that I'm working right now. Some people like to keep "justified content" where I don't, so I was evaluating if I could, somehow, "de-justify" everything that I am working and "re-justify" before I could commit.
But your explanation makes sense, for me it wasn't clear how zprint works :)
I don't quite know what you mean buy "justified content", but it is possible that zprint could put the code into the format that the team with which you are working is using. zprint will "justify" a number of things, but I have no idea if my idea of "justify" has any relationship to your team's idea of "justified content".
To better illustrate the specific examples you used, you can configure zprint to never put functions classified as :binding
(which is how let
is configured, among a host of others) on a single line by adding {:fn-force-nl #{:binding}}
to the options map, like so:
zprint.core=> x
"(let [a b c d] (g h (i j)))"
zprint.core=> (czprint x {:parse-string? true})
(let [a b c d] (g h (i j)))
nil
zprint.core=> (czprint x {:parse-string? true :fn-force-nl #{:binding}})
(let [a b
c d]
(g h (i j)))
This doesn't happen with ->>
because it is configured with a function type of :force-nl-body
which is already part of the set of :fn-force-nl
. For more information about that function type (and all others), you can look here.
Anyway, if you want help configuring zprint to format like your team does, include some examples of what you want and I'll see what I can do to configure zprint to mimic those examples.
I fixed the documentation about using -e
to test an installation in the just releases 1.2.0
. I remain willing to help configure zprint to do whatever you want it to do.
I continue to be available to help configure zprint to do what you want it to do. Thanks!
So, I just installed
zprint
from the documentation here: https://cljdoc.org/d/zprint/zprint/1.1.2/doc/get-zprint/standalone-binary-for-linuxBut when I tried to run
zprint -e
, it just printsnil
. The side-effect is that everyzprint ...
command I run ends up unformatting the whole file, instead of formatting it. For example, instead of indenting a file, it ends up putting everything on the same line, etc.What's wrong? Is it a bug?
OS: Ubuntu 18.04