From 016dd8c7b3e3be100ff1544766e920ae88389731 Mon Sep 17 00:00:00 2001 From: Emily Guthrie Date: Tue, 4 Feb 2025 20:19:32 -0800 Subject: [PATCH] Change default behavior for zero arity parens --- lib/quokka/config.ex | 4 ++-- lib/style/single_node.ex | 8 ++++---- test/style/blocks_test.exs | 4 ++++ test/style/defs_test.exs | 4 ++++ test/style/module_directives/alias_lifting_test.exs | 1 + test/style/module_directives_test.exs | 1 + test/style/single_node_test.exs | 6 ++++-- test/style/styles_test.exs | 3 +++ 8 files changed, 23 insertions(+), 8 deletions(-) diff --git a/lib/quokka/config.ex b/lib/quokka/config.ex index ae757c2..b534264 100644 --- a/lib/quokka/config.ex +++ b/lib/quokka/config.ex @@ -75,7 +75,7 @@ defmodule Quokka.Config do rewrite_multi_alias: credo_opts[:rewrite_multi_alias] || false, single_pipe_flag: credo_opts[:single_pipe_flag] || false, sort_order: credo_opts[:sort_order] || :alpha, - zero_arity_parens: credo_opts[:zero_arity_parens] || true + zero_arity_parens: credo_opts[:zero_arity_parens] }) end @@ -198,7 +198,7 @@ defmodule Quokka.Config do Map.put(acc, :rewrite_multi_alias, true) {ParenthesesOnZeroArityDefs, opts}, acc when is_list(opts) -> - Map.put(acc, :zero_arity_parens, opts[:parens]) + Map.put(acc, :zero_arity_parens, opts[:parens] || false) {PipeChainStart, opts}, acc when is_list(opts) -> acc diff --git a/lib/style/single_node.ex b/lib/style/single_node.ex index 0cbb78b..fa27a08 100644 --- a/lib/style/single_node.ex +++ b/lib/style/single_node.ex @@ -172,14 +172,14 @@ defmodule Quokka.Style.SingleNode do # Remove parens from 0 arity funs (Credo.Check.Readability.ParenthesesOnZeroArityDefs) defp style({def, dm, [{fun, funm, []} | rest]} = node) when def in ~w(def defp)a and is_atom(fun) do - if Quokka.Config.zero_arity_parens?(), - do: node, - else: style({def, dm, [{fun, Keyword.delete(funm, :closing), nil} | rest]}) + if Quokka.Config.zero_arity_parens?() == false, + do: style({def, dm, [{fun, Keyword.delete(funm, :closing), nil} | rest]}), + else: node end # Add parens to 0 arity funs (Credo.Check.Readability.ParenthesesOnZeroArityDefs) defp style({def, dm, [{fun, funm, nil} | rest]} = node) when def in ~w(def defp)a and is_atom(fun) do - if Quokka.Config.zero_arity_parens?(), + if Quokka.Config.zero_arity_parens?() == true, do: {def, dm, [{fun, Keyword.put(funm, :closing, line: funm[:line]), []} | rest]}, else: node end diff --git a/test/style/blocks_test.exs b/test/style/blocks_test.exs index a5033b8..9f650a6 100644 --- a/test/style/blocks_test.exs +++ b/test/style/blocks_test.exs @@ -12,6 +12,10 @@ defmodule Quokka.Style.BlocksTest do use Quokka.StyleCase, async: true + setup do + Quokka.Config.set_for_test!(:zero_arity_parens, true) + end + describe "with statements" do test "replacement due to no (or all removed) arrows" do assert_style( diff --git a/test/style/defs_test.exs b/test/style/defs_test.exs index 3893f41..af537ab 100644 --- a/test/style/defs_test.exs +++ b/test/style/defs_test.exs @@ -12,6 +12,10 @@ defmodule Quokka.Style.DefsTest do use Quokka.StyleCase, async: true + setup do + Quokka.Config.set_for_test!(:zero_arity_parens, true) + end + describe "run" do test "comments stay put when we can't shrink the head, even with blocks" do assert_style(""" diff --git a/test/style/module_directives/alias_lifting_test.exs b/test/style/module_directives/alias_lifting_test.exs index 00d8c8d..6e65039 100644 --- a/test/style/module_directives/alias_lifting_test.exs +++ b/test/style/module_directives/alias_lifting_test.exs @@ -17,6 +17,7 @@ defmodule Quokka.Style.ModuleDirectives.AliasLiftingTest do Quokka.Config.set_for_test!(:lift_alias, true) Quokka.Config.set_for_test!(:lift_alias_depth, 2) Quokka.Config.set_for_test!(:lift_alias_frequency, 1) + Quokka.Config.set_for_test!(:zero_arity_parens, true) on_exit(fn -> Quokka.Config.set!([]) diff --git a/test/style/module_directives_test.exs b/test/style/module_directives_test.exs index 76d71b0..5dabf6e 100644 --- a/test/style/module_directives_test.exs +++ b/test/style/module_directives_test.exs @@ -15,6 +15,7 @@ defmodule Quokka.Style.ModuleDirectivesTest do setup_all do Quokka.Config.set_for_test!(:rewrite_multi_alias, true) + Quokka.Config.set_for_test!(:zero_arity_parens, true) on_exit(fn -> Quokka.Config.set_for_test!(:rewrite_multi_alias, false) end) diff --git a/test/style/single_node_test.exs b/test/style/single_node_test.exs index 4451ef7..2924955 100644 --- a/test/style/single_node_test.exs +++ b/test/style/single_node_test.exs @@ -12,6 +12,10 @@ defmodule Quokka.Style.SingleNodeTest do use Quokka.StyleCase, async: true + setup do + Quokka.Config.set_for_test!(:zero_arity_parens, true) + end + test "string sigil rewrites" do assert_style ~s|""| assert_style ~s|"\\""| @@ -174,8 +178,6 @@ defmodule Quokka.Style.SingleNodeTest do # Regression: be wary of invocations with extra parens from metaprogramming assert_style("def metaprogramming(foo)(), do: bar") - - Quokka.Config.set_for_test!(:zero_arity_parens, true) end test "prefers implicit try" do diff --git a/test/style/styles_test.exs b/test/style/styles_test.exs index e6abd4b..510a6ab 100644 --- a/test/style/styles_test.exs +++ b/test/style/styles_test.exs @@ -14,6 +14,9 @@ defmodule Quokka.Style.StylesTest do A place for tests that make sure our styles play nicely with each other """ use Quokka.StyleCase, async: true + setup do + Quokka.Config.set_for_test!(:zero_arity_parens, true) + end describe "pipes + defs" do test "pipes doesnt abuse meta and break defs" do