summary refs log tree commit diff
path: root/tests/style.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-07-04 23:29:55 +0200
committerLudovic Courtès <ludo@gnu.org>2022-07-04 23:38:38 +0200
commit8d9291bd2c36810be50ea340cefa481a42c60a2b (patch)
treebb3a9ba4e5cf4ec1de4a54a2e986c078ae1a940d /tests/style.scm
parent3348e485b7229e062e563945ed7e6ac216f25125 (diff)
downloadguix-8d9291bd2c36810be50ea340cefa481a42c60a2b.tar.gz
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 <https://issues.guix.gnu.org/56297>.
Reported by Maxime Devos <maximedevos@telenet.be>.

* 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'.
Diffstat (limited to 'tests/style.scm')
-rw-r--r--tests/style.scm19
1 files changed, 19 insertions, 0 deletions
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 @@ mnopqrstuvwxyz.\")"
          #: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