News for hackers. Stuff that matters.
Re:The hardest program I've ever written (2015) by CodesInChaos on Saturday March 05, 2022 @07:05AM (#30566779)
> The Dart formatter sounds really advanced, and reflects potential complexity of the language.

I would not be surprised if a lisp formatter following the same philosophy as the dart formatter would be similarly complex, since the complexity comes from optimizing line length, not parsing.

Re:The hardest program I've ever written (2015) by mbrock on Saturday March 05, 2022 @07:15AM (#30566839)
Incidentally I spent yesterday implementing a Lisp formatter with the algorithm described by Jean-Philippe Bernardy in the simple and elegant paper "A Pretty But Not Greedy Printer."

https://jyp.github.io/pdf/Prettiest.pdf

It's based on introducing choice between vertical and horizontal stacking. It avoids combinatorial explosion by pruning away strictly suboptimal choices. With just a few extra rules for Lisp forms, the results are quite good.

I don't handle comments though, since I only need it for pretty printing values so far.

Re:The hardest program I've ever written (2015) by lakecresva on Saturday March 05, 2022 @06:16PM (#30572975)
I also wrote a version of Bernardy's pretty printer, but I never did come up with a satisfactory way of formatting text together with code. The best looking solution of splitting on whitespace and making each word a group, either tacking it onto the current line or splitting onto a new line ends up being exponential even with pretty aggressive optimization. Everything else I tried looked bad.