pprint

2019-03-28 Thread Alex Miller
jira/patch welcome... -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this

pprint

2019-03-27 Thread Mark Engelberg
Is there any way to make Clojure's pprint print the record tags for records? It seems odd to me that Clojure's main printer has evolved improved support for records over the years, but pprint still prints records as a plain, untagged map. -- You received this message because you are subscribed

How to get result of default pprint from custom simple-dispatch

2018-05-01 Thread MS
to the user who ventures into reading the edn file. This is not for security, just to keep the edn file independent of namespaces. The defrecord I'm printing has references to other defrecords, which also have an abbreviated form for edn writing. When print-dup is false, I just want pprint and pr

Re: need help on `pprint/write` code with better readability

2016-10-24 Thread jiyinyiyong
Cool library! But i just changed to fipp this morning. I think I will try it much later. fipp is really fast that it succeeded clojure.pprint/write. On Mon, Oct 24, 2016 at 4:36 PM Thomas Heller wrote: > Try https://github.com/weavejester/cljfmt > > It is specifically

Re: need help on `pprint/write` code with better readability

2016-10-24 Thread Thomas Heller
Try https://github.com/weavejester/cljfmt It is specifically written for clj code and not general pprinter. /thomas On Sunday, October 23, 2016 at 1:28:23 PM UTC+2, Jiyin Yiyong wrote: > > I'm using `write` function to generate code very heavily. But small part > of the code are hard to read.

Re: need help on `pprint/write` code with better readability

2016-10-23 Thread jiyinyiyong
What does miser-width mean since you set it to 60? On Mon, Oct 24, 2016 at 3:08 AM Alex Miller <a...@puredanger.com> wrote: > Try something like this: > > (require '[clojure.pprint :as pprint]) > (defn print-code [o] > (binding [pprint/*print-right-margin* 100 >

Re: need help on `pprint/write` code with better readability

2016-10-23 Thread Alex Miller
Try something like this: (require '[clojure.pprint :as pprint]) (defn print-code [o] (binding [pprint/*print-right-margin* 100 pprint/*print-miser-width* 60] (pprint/with-pprint-dispatch pprint/code-dispatch (pprint/pprint o Or one of the "pretty printer"

need help on `pprint/write` code with better readability

2016-10-23 Thread Jiyin Yiyong
I'm using `write` function to generate code very heavily. But small part of the code are hard to read. So I digged into the options and increased `right-margin` to make it a little better. Here's the changes: https://github.com/Cirru/sepal.clj/commit/e65e2d3cac8a5c5537716acd12cc475712ab6f66

[ANN] Ultra 0.2.1 - pprint-source, and playing nicely with CIDER

2015-02-21 Thread W. David Jarvis
*Ultra: a Leiningen plugin for a superior development environment.* Release 0.2.1 comes with two changes - one feature, one (major) bugfix. *First, the feature: pprint-source* Ultra now has a function for pretty-printing source at the REPL - like `source`, but nice looking. At the moment it's

Re: Improving pprint behavior for anonymous functions

2014-04-26 Thread Greg D
Simpler yet using metadata: (ns example.ppfn) (defn print-pf [pf] (if-let [ppf (::ppf (meta pf))] ppf pf)) (defmacro partial* [ args] `(let [m# (pr-str '(partial* ~@args)) pf# (with-meta (partial ~@args) {::ppf m#})] (defmethod print-method (class pf#) [o# w#] (print-simple

Re: Improving pprint behavior for anonymous functions

2014-04-26 Thread Matthew DeVore
Greg's is a nice and clean solution for the data visualization problem, assuming you're only going to use partials. I hacked together a solution to support functions with equality semantics, if anyone is interested. It doesn't support anonymous functions or closures, but doing that would

Improving pprint behavior for anonymous functions

2014-04-25 Thread Matthew DeVore
Hi, There has been one thing bugging me for a long time that seems worth it to fix, and I was wondering if anyone else has had the same problem. I have enjoyed using Clojure's REPL and embracing a Clojure-style data model for my app, where everything is a glorified map or vector and there are

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Alex Miller
You might be interested in this ticket (http://dev.clojure.org/jira/browse/CLJ-1278) of which this is perhaps one special case. I don't know that I necessarily would want the equality semantics; at least in the case of impure functions the equality does not hold. On Friday, April 25, 2014

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Matthew DeVore
Thanks for pointing out the ticket, but based on the Description, it falls short of what I need. It doesn't have any additional information that I can't deduce from looking at the code, in other words, the value of the items in the closures. So while it makes toString prettier, it's not

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Alex Miller
On Friday, April 25, 2014 1:23:49 PM UTC-5, Matthew DeVore wrote: Thanks for pointing out the ticket, but based on the Description, it falls short of what I need. It doesn't have any additional information that I can't deduce from looking at the code, in other words, the value of the

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Greg D
I don't know if this is considered good Clojure, but you could define a print-method within a macro to set up the normal string representation for the partial function: (defmacro partial* [fname arg0 args] `(let [pf# (partial ~fname ~arg0 ~@args) cpf# (class pf#)] (defmethod

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Gary Trakhman
That's not going to work, all the return classes of partial are the same class. On Fri, Apr 25, 2014 at 5:26 PM, Greg D gregoire.da...@gmail.com wrote: I don't know if this is considered good Clojure, but you could define a print-method within a macro to set up the normal string

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Greg D
I guess I don't understand the problem, or what is meant by different classes. A counter-example would be helpful. Further transcript using the macro: (def p6 (partial* + 1 2 3)) #'user/p6 user= (class p6) clojure.core$partial$fn__4194 user= (def p10 (partial* + 1 2 3 4)) #'user/p10 user=

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Gary Trakhman
Ah, I think I was mistaken in a detail, but generally correct. Try it with two partials of the same arity. https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L2460 On Fri, Apr 25, 2014 at 5:47 PM, Greg D gregoire.da...@gmail.com wrote: I guess I don't understand the

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Greg D
I guess I don't understand the problem, or what is meant by all the return classes of partial are the same class. A counter-example would be helpful. Further transcript using the macro: user= (def p6 (partial* + 1 2 3)) #'user/p6 user= (class p6) clojure.core$partial$fn__4194 user= (def p10

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Gary Trakhman
user (def a (partial* + 1 2 3)) #'user/a user a (partial + 1 2 3) user (def b (partial* + 1 2 5)) #'user/b user b (partial + 1 2 5) user a (partial + 1 2 5) On Fri, Apr 25, 2014 at 5:51 PM, Greg D gregoire.da...@gmail.com wrote: I guess I don't understand the problem, or what is meant by

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Greg D
Got it. The macro, as is, will displace the print method for the same arity. On Friday, April 25, 2014 2:50:34 PM UTC-7, Gary Trakhman wrote: Ah, I think I was mistaken in a detail, but generally correct. Try it with two partials of the same arity.

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Greg D
The code below accounts for partials of the same arity. However, there might be a better way to do this with clojure.reflect: (defn print-partial [a-fn] (let [c (class a-fn) fields (into {} (- c .getDeclaredFields (map #(vector (.getName %)

Re: Improving pprint behavior for anonymous functions

2014-04-25 Thread Matthew DeVore
how to determine what symbols inside an fn* body are arguments, and which are not (maybe using symbol metadata?). After that, reify a class that is an AFunction but with an extra method to get the closure map. Finally, just add the proper hooks for pprint and print-method. About

Re: (pprint template) gives me an exception

2013-04-27 Thread Gary Verhaegen
Most probably, your template is a lazy seq and pprint forces its evaluation, which is why the error happens at the pprint point. On 17 April 2013 08:33, Tassilo Horn t...@gnu.org wrote: larry google groups lawrencecloj...@gmail.com writes: (println (pp/pprint template)) Aside from

Re: (pprint template) gives me an exception

2013-04-17 Thread Tassilo Horn
larry google groups lawrencecloj...@gmail.com writes: (println (pp/pprint template)) Aside from the original problem: pprint already prints to *out* and only returns nil, so the code above first prints template, and then the println will also print the nil returned from pprint. Bye, Tassilo

(pprint template) gives me an exception

2013-04-16 Thread larry google groups
On the first pprint expression in this function, I get an exception: (defn add-main-image-for-this-item-and-return-as-new-template [template item] (println start of add-main-image-for-this-item-and-return-as-new- template) (println (pp/pprint template)) (println add-main-image-for-this-item

Re: (pprint template) gives me an exception

2013-04-16 Thread larry google groups
The function before the previously mentioned function is this: (defn add-public-text-to-top-banner-and-return-as-new-template [template item] (println entering add-public-text-to-top-banner-and-return-as-new- template) (println (pp/pprint template)) (enlive/transform template [:#content

Re: (pprint template) gives me an exception

2013-04-16 Thread larry google groups
Oh, I see. I had just changed :admin-text to hold a keyword instead of text. I should have seen that sooner. But I am still confused why a keyword would cause pprint to throw an exception. And why at that point in the code, and not sooner? On Apr 16, 10:05 am, larry google groups lawrencecloj

my code blows up when I try to see it using pprint

2013-04-01 Thread larry google groups
I have a function which at this point only amounts to a print line: (defn add-rows-of-choices-for-a-given-type-and-return-new-template [template item-type-as-string sequence-of-items] (pp/pprint sequence-of-items) ;; (let [inner-template-of-rows-showing-options-for-this-type-of-item

weird pprint behaviour ?

2012-05-03 Thread Frank Siebenlist
I'm using the following function to have pprint write into a string and limit the output: (defn pprint-str Return string with pprint of v, and limit output to prevent blowup. [v] (with-out-str (binding [*print-length* 32 *print-level* 6] (pprint v Everything seems to work

Re: weird pprint behaviour ?

2012-05-03 Thread Meikel Brandmeyer
Hi, Am 03.05.2012 um 18:43 schrieb Frank Siebenlist: user= (pprint #'clojure.core/*print-length*) #Var@5d2aea3e: nil nil user= (clj-ns-browser.utils/pprint-str #'clojure.core/*print-length*) #Var@5d2aea3e: 32\n user= (with-out-str (binding [*print-length* 32 *print-level* 6] (pprint

Re: weird pprint behaviour ?

2012-05-03 Thread Meikel Brandmeyer
Hi again, Am 03.05.2012 um 18:59 schrieb Meikel Brandmeyer: user= (def f nil) #'user/f user= (binding [*print-length* 32] (clojure.pprint/pprint f)) nil Of course I should have printed the Var. user= (binding [*print-length* 32] (clojure.pprint/pprint #'f)) #Var@4a3a6e5c: nil Kind regards

Re: weird pprint behaviour ?

2012-05-03 Thread Frank Siebenlist
Thanks for catching that - I didn't even notice that I was printing the binding var itself… need coffee… -FS. On May 3, 2012, at 9:59 AM, Meikel Brandmeyer wrote: Hi, Am 03.05.2012 um 18:43 schrieb Frank Siebenlist: user= (pprint #'clojure.core/*print-length*) #Var@5d2aea3e: nil nil

Tutorial/examples of pprint dispatch functions

2011-10-25 Thread Alasdair MacLeod
Hello, Are there any tutorials or examples of setting up pprint dispatch functions? I know the docs suggest looking at the source, but I find it a bit cryptic. In particular I would like to see if it's possible to dispatch on meta-data, record types or more arbitrary values in a map etc

Re: Tutorial/examples of pprint dispatch functions

2011-10-25 Thread Kevin Downey
https://gist.github.com/1314616 On Tue, Oct 25, 2011 at 6:33 AM, Alasdair MacLeod alasdair.clj@gmail.com wrote: Hello, Are there any tutorials or examples of setting up pprint dispatch functions?  I know the docs suggest looking at the source, but I find it a bit cryptic.  In particular

Re: Increasing indent level in pprint

2011-07-19 Thread Tom Faulhaber
/pprint/dispatch.clj#L65 I have created a variant of simple dispatch that does the two character indent (as per your example above). I through a little project on github: https://github.com/tomfaulhaber/pprint-indent. The README is basically a copy of your second example run in my repl. The source

Re: Increasing indent level in pprint

2011-07-19 Thread Sean Corfield
On Tue, Jul 19, 2011 at 12:03 AM, Tom Faulhaber tomfaulha...@gmail.com wrote: Sean's remark is right for writing code, but not really relevant for pretty printed data structures. The pretty printer will either avoid (foo a followed by a line break or fill that line full. (By default, for lists

Re: Increasing indent level in pprint

2011-07-19 Thread Tom Faulhaber
Hmmm, looking back at the code, I see that I mis-remembered the fact that lists and vectors were different. They both (along with maps) will break rather than fill. Arrays and sets both fill rather than break. I'm not sure how much logic there is around this. It just fit my intuition about how

Increasing indent level in pprint

2011-07-16 Thread Asim Jalis
Is there an easy way to increase the indent of pprint data structures from 1 to something like 2 or 4? I've been searching on Google and going through the docs and don't see anything. For example, I would like the following command to produce something closer to output 2 than to output 1

Re: Increasing indent level in pprint

2011-07-16 Thread Sean Corfield
On Sat, Jul 16, 2011 at 12:46 PM, Asim Jalis asimja...@gmail.com wrote: Is there an easy way to increase the indent of pprint data structures from 1 to something like 2 or 4? I've been searching on Google and going through the docs and don't see anything. For example, I would like

Re: Increasing indent level in pprint

2011-07-16 Thread Asim Jalis
seancorfi...@gmail.com wrote: On Sat, Jul 16, 2011 at 12:46 PM, Asim Jalis asimja...@gmail.com wrote: Is there an easy way to increase the indent of pprint data structures from 1 to something like 2 or 4? I've been searching on Google and going through the docs and don't see anything. For example, I

Re: Increasing indent level in pprint

2011-07-16 Thread Sean Corfield
On Sat, Jul 16, 2011 at 7:05 PM, Asim Jalis asimja...@gmail.com wrote: The position of the braces might be a red herring here. I was mostly interested in figuring out how to increase the indentation level from 1 to something larger. Even an indentation step of 2 for each level would be easier

Re: Increasing indent level in pprint

2011-07-16 Thread Asim Jalis
Okay. I see what you mean. On Jul 16, 2011, at 8:39 PM, Sean Corfield seancorfi...@gmail.com wrote: On Sat, Jul 16, 2011 at 7:05 PM, Asim Jalis asimja...@gmail.com wrote: The position of the braces might be a red herring here. I was mostly interested in figuring out how to increase the

clojure.pprint/pprint and map-like structures

2011-01-26 Thread Shantanu Kumar
Hi, I have created some 'deftype' objects and 'extend'ed clojure.lang.ILookup to them to make them behave like maps. How can I get the clojure.pprint/pprint to pretty-print them like maps? Regards, Shantanu -- You received this message because you are subscribed to the Google Groups Clojure

Re: clojure.pprint/pprint and map-like structures

2011-01-26 Thread Ken Wesson
On Wed, Jan 26, 2011 at 10:58 AM, Shantanu Kumar kumar.shant...@gmail.com wrote: Hi, I have created some 'deftype' objects and 'extend'ed clojure.lang.ILookup to them to make them behave like maps. How can I get the clojure.pprint/pprint to pretty-print them like maps? A deftype can override

Re: clojure.pprint/pprint and map-like structures

2011-01-26 Thread Shantanu Kumar
behave like maps. How can I get the clojure.pprint/pprint to pretty-print them like maps? A deftype can override toString like this: user= (deftype Foo [n]   java.lang.Object     (toString [this] (str Foo n ))) user.Foo user= (Foo. 3) #Foo Foo3 user= It still gets printed the way generic

Re: pprint

2009-07-10 Thread Tom Faulhaber
by dispatch functions that in turn call functions in the underlying mechanism. There are four examples you can look at to see how this works in Clojure: two functions in clojure/contrib/pprint/dispatch.clj that implement the standard simple dispatch and the specialized code dispatch. The other two

Re: pprint

2009-07-09 Thread Laurent PETIT
the structure the you read in a container (or set of containers) that annotates it. A simple transform could then extract reader compatible version if you needed it. One experiment I've been doing is to build an Object Explorer based on pprint. The thing I added (but that's not totally integrated

Re: pprint

2009-07-01 Thread Laurent PETIT
Hi Tom, Thanks for the answer. I already have some embryonic antlr grammar for clojure, but I'm willing to give pprint a thourough try. I'll play with your code. Do you have a first pass over the clojure reader to attach other meta information as you go, or do you directly consume the clojure

Re: pprint

2009-07-01 Thread Tom Faulhaber
Laurent, Sounds like a good plan. To answer your questions: I'll play with your code. Do you have a first pass over the clojure reader to attach other meta information as you go, or do you directly consume the clojure data structures the reader passes to you ? pprint operates on clojure

Re: pprint

2009-07-01 Thread philip.hazel...@gmail.com
On Jul 1, 9:52 am, Laurent PETIT laurent.pe...@gmail.com wrote: As far as IDE integration is concerned, i would not bother (at first) about incremental thing. I rather intend to always parse the entire edited file content (of course if this causes a performance problem, I might rethink about

Re: pprint

2009-07-01 Thread Laurent PETIT
structures the reader passes to you ? pprint operates on clojure objects directly and doesn't really consider where they came from. It has no concept of parsing input at all.  However, output is very flexible, being driven by user-definable dispatch functions. The architecture is based on the standard

Re: pprint

2009-07-01 Thread Laurent PETIT
Hi Philip, 2009/7/1 philip.hazel...@gmail.com philip.hazel...@gmail.com: On Jul 1, 9:52 am, Laurent PETIT laurent.pe...@gmail.com wrote: As far as IDE integration is concerned, i would not bother (at first) about incremental thing. I rather intend to always parse the entire edited file

Re: pprint

2009-07-01 Thread Tom Faulhaber
) that annotates it. A simple transform could then extract reader compatible version if you needed it. One experiment I've been doing is to build an Object Explorer based on pprint. The thing I added (but that's not totally integrated back into pprint yet), is callbacks to let you map structure to output

Re: pprint

2009-06-30 Thread Tom Faulhaber
Hi Laurent, I think that pprint might be a good foundation for what you are doing, but there are a couple of issues that need to be dealt with first. First, pprint works directly on Clojure objects and not strings, so the code will need to be read first. Second, the Clojure reader is lossy