Hi Daniel, I think that this is a great idea. I'm a big fan of gofmt, because it has no options - it prevents any discussion of indentation and instead allows code-reviews to be focused on the code itself.
Marc On Tue, 18 Dec 2018 at 20:42, Daniel Compton <daniel.compton.li...@gmail.com> wrote: > Hi folks > > In the last ten years or so, source code formatters with limited/no > configuration have become popular. Go is the most well-known example, > shipping with gofmt, but there are similar tools in Rust, JavaScript, > Python, and Elixir. > > Clojure and Lisps, in general, have historically allowed very flexible > formatting of s-expressions. This can aid readability but adds a cognitive > overhead for readers used to different styles. It can also be challenging > to match existing source code formatting if you are using a different > editor to the original author. > > *I believe it would be useful for the Clojure community to be able to > develop (or adopt) a single source-code formatter which is able to format > Clojure source code to a canonical format.* It seems unlikely that 100% > (maybe not even 50%) of the community would want such a tool, but I feel > like there is enough desire for a common formatting tool that this could > still be valuable. > > I've created a discussion thread > <https://clojureverse.org/t/clj-commons-building-a-formatter-like-gofmt-for-clojure/3240> > on ClojureVerse about building a Clojure/ClojureScript source code > formatter as part of CLJ Commons <https://clj-commons.org/>. There are a > few differences in goals between this tool and the existing ones that > exist. I go into more detail in the thread, but I'm proposing the creation > of > > * A fairly canonical format for Clojure code, e.g. reindenting code, > reformatting namespace declarations. A format that has idiomatic opinions. > * A formatting spec and test suite that multiple different tools and > editors can implement, not a spec defined by the implementation of a single > tool. > * The creation of a reference implementation formatter. > * A formatter with few (maybe zero?) options > > It's possible that 10 years after Clojure's creation, it's going to be too > difficult for the community to coalesce around a canonical format, and it > will be necessary to add some configuration options. I'm not really sure, > which is why I'm asking for community members to join in the discussion. > > I realise that I'm touching the third rail > <https://en.wikipedia.org/wiki/Third_rail_of_politics> here, and lots of > people have strong opinions about formatting. I don't expect that everyone > would like or want to adopt such a strict formatting tool, and that's > totally ok! For those of you that *do* like the idea of building/having > such a tool, please jump in on the discussion on ClojureVerse, and on a > GitHub repo discussing the different aspects of formatting at > https://github.com/clj-commons/formatter. > > Thanks, Daniel. > > -- > 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 group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.