Skip to content

Commit cbe12e2

Browse files
authored
feat(fmt): Add trailing comma on inline records (#2266)
1 parent ef77a31 commit cbe12e2

File tree

4 files changed

+25
-24
lines changed

4 files changed

+25
-24
lines changed

compiler/src/formatting/fmt.re

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1514,7 +1514,8 @@ let print_expression = (fmt, ~infix_wrap=d => group(indent(d)), expr) => {
15141514
~f=
15151515
(~final, e) =>
15161516
if (final) {
1517-
group(fmt.print_punnable_expression(fmt, e));
1517+
group(fmt.print_punnable_expression(fmt, e))
1518+
++ trailing_comma;
15181519
} else {
15191520
group(fmt.print_punnable_expression(fmt, e) ++ comma);
15201521
},

compiler/test/grainfmt/comments.expected.gr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ Foo{
366366
// comment
367367
foo,
368368
// comment
369-
bar
369+
bar,
370370
}
371371

372372
{

compiler/test/grainfmt/variants.expected.gr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ enum InlineRec {
3636

3737
let r = Rec{ /* first comment */
3838
x: 1, /* second comment */
39-
y: 2 // third comment
39+
y: 2, // third comment
4040
} /* fourth comment */

compiler/test/stdlib/json.test.gr

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,7 @@ module ToString {
736736
finishWithNewLine: false,
737737
escapeAllControlPoints: false,
738738
escapeHTMLUnsafeSequences: false,
739-
escapeNonASCII: false
739+
escapeNonASCII: false,
740740
}
741741
)
742742
== Ok("[\n 1\n]")
@@ -750,7 +750,7 @@ module ToString {
750750
finishWithNewLine: false,
751751
escapeAllControlPoints: false,
752752
escapeHTMLUnsafeSequences: false,
753-
escapeNonASCII: false
753+
escapeNonASCII: false,
754754
}
755755
)
756756
== Ok("[\n [\n 1\n ]\n]")
@@ -764,7 +764,7 @@ module ToString {
764764
finishWithNewLine: false,
765765
escapeAllControlPoints: false,
766766
escapeHTMLUnsafeSequences: false,
767-
escapeNonASCII: false
767+
escapeNonASCII: false,
768768
}
769769
)
770770
== Ok("[\n[\n1\n]\n]")
@@ -780,7 +780,7 @@ module ToString {
780780
finishWithNewLine: false,
781781
escapeAllControlPoints: false,
782782
escapeHTMLUnsafeSequences: false,
783-
escapeNonASCII: false
783+
escapeNonASCII: false,
784784
}
785785
)
786786
== Ok("[\n1\n]")
@@ -794,7 +794,7 @@ module ToString {
794794
finishWithNewLine: false,
795795
escapeAllControlPoints: false,
796796
escapeHTMLUnsafeSequences: false,
797-
escapeNonASCII: false
797+
escapeNonASCII: false,
798798
}
799799
)
800800
== Ok("[1]")
@@ -808,7 +808,7 @@ module ToString {
808808
finishWithNewLine: false,
809809
escapeAllControlPoints: false,
810810
escapeHTMLUnsafeSequences: false,
811-
escapeNonASCII: false
811+
escapeNonASCII: false,
812812
}
813813
)
814814
== Ok("[\r\n1\r\n]")
@@ -822,7 +822,7 @@ module ToString {
822822
finishWithNewLine: false,
823823
escapeAllControlPoints: false,
824824
escapeHTMLUnsafeSequences: false,
825-
escapeNonASCII: false
825+
escapeNonASCII: false,
826826
}
827827
)
828828
== Ok("[\r1\r]")
@@ -838,7 +838,7 @@ module ToString {
838838
finishWithNewLine: false,
839839
escapeAllControlPoints: false,
840840
escapeHTMLUnsafeSequences: false,
841-
escapeNonASCII: false
841+
escapeNonASCII: false,
842842
}
843843
)
844844
== Ok("[\n1\n]")
@@ -852,7 +852,7 @@ module ToString {
852852
finishWithNewLine: true,
853853
escapeAllControlPoints: false,
854854
escapeHTMLUnsafeSequences: false,
855-
escapeNonASCII: false
855+
escapeNonASCII: false,
856856
}
857857
)
858858
== Ok("[\n1\n]\n")
@@ -868,7 +868,7 @@ module ToString {
868868
finishWithNewLine: false,
869869
escapeAllControlPoints: false,
870870
escapeHTMLUnsafeSequences: false,
871-
escapeNonASCII: false
871+
escapeNonASCII: false,
872872
}
873873
)
874874
== Ok("[1,2,3]")
@@ -882,7 +882,7 @@ module ToString {
882882
finishWithNewLine: false,
883883
escapeAllControlPoints: false,
884884
escapeHTMLUnsafeSequences: false,
885-
escapeNonASCII: false
885+
escapeNonASCII: false,
886886
}
887887
)
888888
== Ok("[1, 2, 3]")
@@ -896,7 +896,7 @@ module ToString {
896896
finishWithNewLine: false,
897897
escapeAllControlPoints: false,
898898
escapeHTMLUnsafeSequences: false,
899-
escapeNonASCII: false
899+
escapeNonASCII: false,
900900
}
901901
)
902902
== Ok("[\n 1,\n 2,\n 3\n]")
@@ -914,7 +914,7 @@ module ToString {
914914
finishWithNewLine: false,
915915
escapeAllControlPoints: false,
916916
escapeHTMLUnsafeSequences: false,
917-
escapeNonASCII: false
917+
escapeNonASCII: false,
918918
}
919919
)
920920
== Ok("{\"one\":1,\"two\":2,\"three\":3}")
@@ -930,7 +930,7 @@ module ToString {
930930
finishWithNewLine: false,
931931
escapeAllControlPoints: false,
932932
escapeHTMLUnsafeSequences: false,
933-
escapeNonASCII: false
933+
escapeNonASCII: false,
934934
}
935935
)
936936
== Ok("{\"one\": 1, \"two\": 2, \"three\": 3}")
@@ -946,7 +946,7 @@ module ToString {
946946
finishWithNewLine: false,
947947
escapeAllControlPoints: false,
948948
escapeHTMLUnsafeSequences: false,
949-
escapeNonASCII: false
949+
escapeNonASCII: false,
950950
}
951951
)
952952
== Ok("{\n \"one\": 1,\n \"two\": 2,\n \"three\": 3\n}")
@@ -961,7 +961,7 @@ module ToString {
961961
finishWithNewLine: false,
962962
escapeAllControlPoints: false,
963963
escapeHTMLUnsafeSequences: false,
964-
escapeNonASCII: true
964+
escapeNonASCII: true,
965965
}
966966
)
967967
== Ok("\"\\nr\\ud83c\\udf3e\"")
@@ -975,7 +975,7 @@ module ToString {
975975
finishWithNewLine: false,
976976
escapeAllControlPoints: false,
977977
escapeHTMLUnsafeSequences: false,
978-
escapeNonASCII: true
978+
escapeNonASCII: true,
979979
}
980980
)
981981
== Ok("\"\\nr\\ud83c\\udf3e\\u0080\"")
@@ -989,7 +989,7 @@ module ToString {
989989
finishWithNewLine: false,
990990
escapeAllControlPoints: true,
991991
escapeHTMLUnsafeSequences: false,
992-
escapeNonASCII: true
992+
escapeNonASCII: true,
993993
}
994994
)
995995
== Ok("\"r\\ud83c\\udf3e\\u0080\"")
@@ -1003,7 +1003,7 @@ module ToString {
10031003
finishWithNewLine: false,
10041004
escapeAllControlPoints: false,
10051005
escapeHTMLUnsafeSequences: true,
1006-
escapeNonASCII: false
1006+
escapeNonASCII: false,
10071007
}
10081008
)
10091009
== Ok("\"<\\/\"")
@@ -1022,7 +1022,7 @@ module ToString {
10221022
finishWithNewLine: false,
10231023
escapeAllControlPoints: false,
10241024
escapeHTMLUnsafeSequences: false,
1025-
escapeNonASCII: false
1025+
escapeNonASCII: false,
10261026
}
10271027
),
10281028
comprehensiveNestingCombinations
@@ -1056,7 +1056,7 @@ module ToString {
10561056
finishWithNewLine: false,
10571057
escapeAllControlPoints: false,
10581058
escapeHTMLUnsafeSequences: false,
1059-
escapeNonASCII: false
1059+
escapeNonASCII: false,
10601060
}
10611061
),
10621062
comprehensiveNestingCombinations

0 commit comments

Comments
 (0)