@@ -594,18 +594,17 @@ lay_no_comments(Node, Ctxt) ->
594594 Ctxt1 = reset_prec (Ctxt ),
595595 D1 = lay (erl_syntax :generator_pattern (Node ), Ctxt1 ),
596596 D2 = lay (erl_syntax :generator_body (Node ), Ctxt1 ),
597- prettypr :par ([D1 ,
598- prettypr :beside (
599- prettypr :text (" <- " ), D2 )],
600- Ctxt1 # ctxt .break_indent );
597+ lay_generator (D1 , D2 , " <- " , Ctxt1 );
601598 binary_generator ->
602599 Ctxt1 = reset_prec (Ctxt ),
603600 D1 = lay (erl_syntax :binary_generator_pattern (Node ), Ctxt1 ),
604601 D2 = lay (erl_syntax :binary_generator_body (Node ), Ctxt1 ),
605- prettypr :par ([D1 ,
606- prettypr :beside (
607- prettypr :text (" <= " ), D2 )],
608- Ctxt1 # ctxt .break_indent );
602+ lay_generator (D1 , D2 , " <= " , Ctxt1 );
603+ map_generator ->
604+ Ctxt1 = reset_prec (Ctxt ),
605+ D1 = lay (erl_syntax :map_generator_pattern (Node ), Ctxt1 ),
606+ D2 = lay (erl_syntax :map_generator_body (Node ), Ctxt1 ),
607+ lay_generator (D1 , D2 , " <- " , Ctxt1 );
609608 implicit_fun ->
610609 D = lay (erl_syntax :implicit_fun_name (Node ), reset_prec (Ctxt )),
611610 prettypr :beside (lay_text_float (" fun " ), D );
@@ -621,6 +620,12 @@ lay_no_comments(Node, Ctxt) ->
621620 D2 = lay_items (erl_syntax :binary_comp_body (Node ), Ctxt1 , fun lay /2 ),
622621 D3 = prettypr :beside (lay_text_float (" || " ), prettypr :beside (D2 , lay_text_float (" >>" ))),
623622 prettypr :beside (lay_text_float (" << " ), prettypr :par ([D1 , D3 ]));
623+ map_comp ->
624+ Ctxt1 = reset_prec (Ctxt ),
625+ D1 = lay (erl_syntax :map_comp_template (Node ), Ctxt1 ),
626+ D2 = lay_items (erl_syntax :map_comp_body (Node ), Ctxt1 , fun lay /2 ),
627+ D3 = prettypr :beside (lay_text_float (" || " ), prettypr :beside (D2 , lay_text_float (" }" ))),
628+ prettypr :beside (lay_text_float (" #{" ), prettypr :par ([D1 , D3 ]));
624629 macro ->
625630 % % This is formatted similar to a normal function call or a variable
626631 N = macro_name (Node , variable ),
@@ -1084,6 +1089,12 @@ maybe_convert_to_qualifier(Node, #ctxt{force_arity_qualifiers = true}) ->
10841089 Node
10851090 end .
10861091
1092+ lay_generator (D1 , D2 , Connector , Ctxt ) ->
1093+ prettypr :par ([D1 ,
1094+ prettypr :beside (
1095+ prettypr :text (Connector ), D2 )],
1096+ Ctxt # ctxt .break_indent ).
1097+
10871098lay_nested_infix_expr (Node , # ctxt {parenthesize_infix_operations = false } = Ctxt ) ->
10881099 lay (Node , Ctxt );
10891100lay_nested_infix_expr (Node , # ctxt {parenthesize_infix_operations = true } = Ctxt ) ->
0 commit comments