Skip to content

Commit

Permalink
[MOREL-206] Indent tuples when printing
Browse files Browse the repository at this point in the history
  • Loading branch information
julianhyde committed Nov 22, 2023
1 parent 08cdf6b commit 9a25947
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 21 deletions.
2 changes: 1 addition & 1 deletion src/main/java/net/hydromatic/morel/compile/Pretty.java
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ private StringBuilder pretty2(@Nonnull StringBuilder buf,
if (buf.length() > start) {
buf.append(",");
}
pretty1(buf, indent, lineEnd, depth + 1, elementType, o);
pretty1(buf, indent + 1, lineEnd, depth + 1, elementType, o);
});
return buf.append(")");

Expand Down
22 changes: 22 additions & 0 deletions src/test/java/net/hydromatic/morel/ShellTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -510,10 +510,16 @@ private Matcher<String> is2(String expected) {
@Test void testLineWidth() {
String inputString = "Sys.set (\"lineWidth\", 100);\n"
+ "val x = [[1,2,3], [4,5], [6], []];\n"
+ "val y = ([1,2,3], [4,5], [6], []);\n"
+ "val z = {a=[1,2,3], b=[4,5], c=[6], d=()};\n"
+ "Sys.set (\"lineWidth\", 40);\n"
+ "x;"
+ "y;"
+ "z;"
+ "Sys.set (\"lineWidth\", 20);\n"
+ "x;"
+ "y;"
+ "z;"
+ "Sys.set (\"lineWidth\", 1);\n"
+ "x;"
+ "Sys.set (\"lineWidth\", 0);\n"
Expand All @@ -522,15 +528,31 @@ private Matcher<String> is2(String expected) {
+ "x;\n";
String expected = "val it = () : unit\n"
+ "val x = [[1,2,3],[4,5],[6],[]] : int list list\n"
+ "val y = ([1,2,3],[4,5],[6],[])"
+ " : int list * int list * int list * 'a list\n"
+ "val z = {a=[1,2,3],b=[4,5],c=[6],d=()}"
+ " : {a:int list, b:int list, c:int list, d:unit}\n"
+ "val it = () : unit\n"
+ "val it = [[1,2,3],[4,5],[6],[]]\n"
+ " : int list list\n"
+ "val it = ([1,2,3],[4,5],[6],[])\n"
+ " : int list * int list * int list * 'a list\n"
+ "val it = {a=[1,2,3],b=[4,5],c=[6],d=()}\n"
+ " : {a:int list, b:int list, c:int list, d:unit}\n"
+ "val it = () : unit\n"
+ "val it =\n"
+ " [[1,2,3],[4,5],[6],\n"
+ " []]\n"
+ " : int list list\n"
+ "val it =\n"
+ " ([1,2,3],[4,5],[6],\n"
+ " [])\n"
+ " : int list * int list * int list * 'a list\n"
+ "val it =\n"
+ " {a=[1,2,3],b=[4,5],\n"
+ " c=[6],d=()}\n"
+ " : {a:int list, b:int list, c:int list, d:unit}\n"
+ "val it =\n"
+ " ()\n"
+ " : unit\n"
+ "val it =\n"
Expand Down
Loading

0 comments on commit 9a25947

Please sign in to comment.