diff --git a/.github/workflows/erlang.yml b/.github/workflows/erlang.yml index 99cdf3a..f1f40b9 100644 --- a/.github/workflows/erlang.yml +++ b/.github/workflows/erlang.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - otp: ['25'] + otp: ['26'] rebar: ['3.24'] steps: diff --git a/rebar.config b/rebar.config index 65e75ef..7f77978 100644 --- a/rebar.config +++ b/rebar.config @@ -18,7 +18,8 @@ {rebar3_sheldon, "~> 0.4.3"}, {rebar3_ex_doc, "~> 0.2.24"}]}. -{dialyzer, [{warnings, [no_return, unmatched_returns, error_handling, underspecs]}]}. +{dialyzer, + [{warnings, [no_unknown, no_return, unmatched_returns, error_handling, underspecs]}]}. {edoc_opts, [{todo, true}, {overview, "priv/overview.edoc"}]}. diff --git a/src/formatters/default_formatter.erl b/src/formatters/default_formatter.erl index ba37528..c98db7e 100644 --- a/src/formatters/default_formatter.erl +++ b/src/formatters/default_formatter.erl @@ -606,6 +606,11 @@ lay_no_comments(Node, Ctxt) -> prettypr:beside( prettypr:text("<= "), D2)], Ctxt1#ctxt.break_indent); + map_generator -> + Ctxt1 = reset_prec(Ctxt), + D1 = lay(erl_syntax:map_generator_pattern(Node), Ctxt1), + D2 = lay(erl_syntax:map_generator_body(Node), Ctxt1), + prettypr:par([D1, prettypr:beside(prettypr:text("<- "), D2)], Ctxt1#ctxt.break_indent); implicit_fun -> D = lay(erl_syntax:implicit_fun_name(Node), reset_prec(Ctxt)), prettypr:beside(lay_text_float("fun "), D); @@ -621,6 +626,12 @@ lay_no_comments(Node, Ctxt) -> D2 = lay_items(erl_syntax:binary_comp_body(Node), Ctxt1, fun lay/2), D3 = prettypr:beside(lay_text_float("|| "), prettypr:beside(D2, lay_text_float(" >>"))), prettypr:beside(lay_text_float("<< "), prettypr:par([D1, D3])); + map_comp -> + Ctxt1 = reset_prec(Ctxt), + D1 = lay(erl_syntax:map_comp_template(Node), Ctxt1), + D2 = lay_items(erl_syntax:map_comp_body(Node), Ctxt1, fun lay/2), + D3 = prettypr:beside(lay_text_float("|| "), prettypr:beside(D2, lay_text_float("}"))), + prettypr:beside(lay_text_float("#{"),prettypr:par([D1, D3])); macro -> %% This is formatted similar to a normal function call or a variable N = macro_name(Node, variable), diff --git a/test_app/after/src/brackets.erl b/test_app/after/src/brackets.erl index 7c9a386..895c33d 100644 --- a/test_app/after/src/brackets.erl +++ b/test_app/after/src/brackets.erl @@ -1,6 +1,6 @@ -module(brackets). --format #{inline_items => all, paper => 50}. +-format #{paper => 50, inline_items => all}. -compile(export_all). diff --git a/test_app/after/src/inline_items/inline_items_when_over.erl b/test_app/after/src/inline_items/inline_items_when_over.erl index c77e270..ba744a1 100644 --- a/test_app/after/src/inline_items/inline_items_when_over.erl +++ b/test_app/after/src/inline_items/inline_items_when_over.erl @@ -3,7 +3,7 @@ %% per line if they're larger than 5 elements. -module(inline_items_when_over). --format #{inline_items => {when_over, 5}, paper => 80}. +-format #{paper => 80, inline_items => {when_over, 5}}. -export([short_tuple/0, short_list/0, short_fun/0]). -export([short_bin/0, short_guard/1, short_lc/0]). diff --git a/test_app/after/src/inline_items/inline_items_when_under.erl b/test_app/after/src/inline_items/inline_items_when_under.erl index 55bc77c..b26e42c 100644 --- a/test_app/after/src/inline_items/inline_items_when_under.erl +++ b/test_app/after/src/inline_items/inline_items_when_under.erl @@ -1,6 +1,6 @@ -module(inline_items_when_under). --format #{inline_items => {when_under, 5}, paper => 80}. +-format #{paper => 80, inline_items => {when_under, 5}}. -export([short_tuple/0, short_list/0, short_fun/0]). -export([short_bin/0, short_guard/1, short_lc/0]). diff --git a/test_app/after/src/inline_items/inline_no_items.erl b/test_app/after/src/inline_items/inline_no_items.erl index 0ab7b30..86db03c 100644 --- a/test_app/after/src/inline_items/inline_no_items.erl +++ b/test_app/after/src/inline_items/inline_no_items.erl @@ -3,7 +3,7 @@ %% per line if they're large. -module(inline_no_items). --format #{inline_items => none, paper => 80}. +-format #{paper => 80, inline_items => none}. -export([short_tuple/0, short_list/0, short_fun/0]). -export([short_bin/0, short_guard/1, short_lc/0]). diff --git a/test_app/after/src/paper_and_ribbon/indent_18.erl b/test_app/after/src/paper_and_ribbon/indent_18.erl index c342542..dc7f951 100644 --- a/test_app/after/src/paper_and_ribbon/indent_18.erl +++ b/test_app/after/src/paper_and_ribbon/indent_18.erl @@ -1,9 +1,9 @@ -module(indent_18). --format #{break_indent => 1, - inline_clause_bodies => true, +-format #{sub_indent => 8, + break_indent => 1, paper => 50, - sub_indent => 8}. + inline_clause_bodies => true}. -record(record, {fields = diff --git a/test_app/after/src/paper_and_ribbon/indent_81.erl b/test_app/after/src/paper_and_ribbon/indent_81.erl index 4b00c9d..b4324a8 100644 --- a/test_app/after/src/paper_and_ribbon/indent_81.erl +++ b/test_app/after/src/paper_and_ribbon/indent_81.erl @@ -1,8 +1,8 @@ -module(indent_81). --format #{break_indent => 8, - paper => 50, - sub_indent => 1}. +-format #{sub_indent => 1, + break_indent => 8, + paper => 50}. -format #{inline_clause_bodies => true}. -record(record,