From 8d9291bd2c36810be50ea340cefa481a42c60a2b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Jul 2022 23:29:55 +0200 Subject: style: For 'let' and similar forms, emit one binding per line. Previously, 'let' bindings could be rendered like this: (let ((x 1) (y 2) (z 3)) ...) With this change, each bindings goes in its own line. Partly fixes . Reported by Maxime Devos . * guix/scripts/style.scm (pretty-print-with-comments)[list-of-lists?]: New procedure. Use it. * tests/style.scm: Add tests with 'let' and 'substitute-keyword-arguments'. --- tests/style.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests') diff --git a/tests/style.scm b/tests/style.scm index 48d975df94..55bad2b3ba 100644 --- a/tests/style.scm +++ b/tests/style.scm @@ -504,6 +504,25 @@ (define file #:make-flags #~'(\"ANSWER=42\") #:tests? #f)))") +(test-pretty-print "\ +(let ((x 1) + (y 2) + (z (let* ((a 3) + (b 4)) + (+ a b)))) + (list x y z))") + +(test-pretty-print "\ +(substitute-keyword-arguments (package-arguments x) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'build 'do-things + (lambda _ + #t)))) + ((#:configure-flags flags) + `(cons \"--without-any-problem\" + ,flags)))") + (test-equal "pretty-print-with-comments, canonicalize-comment" "\ (list abc -- cgit v1.2.3