From 023bb5e7661bdf61ef79b07d2d1181ce092f6505 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 4 Jun 2024 16:25:22 +0800 Subject: [PATCH 1/4] build: run erlfmt with files name by `$(FIND)` --- Makefile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index cbff37ecd..1659f2de1 100644 --- a/Makefile +++ b/Makefile @@ -317,10 +317,16 @@ $(foreach tt,$(ALL_ELIXIR_TGZS),$(eval $(call gen-elixir-tgz-target,$(tt)))) .PHONY: fmt fmt: $(REBAR) - @$(SCRIPTS)/erlfmt -w 'apps/*/{src,include,priv,test,integration_test}/**/*.{erl,hrl,app.src,eterm}' - @$(SCRIPTS)/erlfmt -w 'apps/*/rebar.config' 'apps/emqx/rebar.config.script' '.ci/fvt_tests/http_server/rebar.config' - @$(SCRIPTS)/erlfmt -w 'rebar.config' 'rebar.config.erl' - @$(SCRIPTS)/erlfmt -w 'scripts/*.escript' 'bin/*.escript' 'bin/nodetool' + @$(FIND) . \( -name '*.app.src' -o \ + -name '*.erl' -o \ + -name '*.hrl' -o \ + -name 'rebar.config' -o \ + -name '*.eterm' -o \ + -name '*.escript' \) -not -path '*/_build/*' -type f \ + | xargs $(SCRIPTS)/erlfmt -w + @$(SCRIPTS)/erlfmt -w 'apps/emqx/rebar.config.script' + @$(SCRIPTS)/erlfmt -w 'elvis.config' + @$(SCRIPTS)/erlfmt -w 'bin/nodetool' @mix format .PHONY: clean-test-cluster-config From 336ed1b9223e37adb3336b8edacfd2a9b4238319 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 4 Jun 2024 22:18:14 +0800 Subject: [PATCH 2/4] style: reformat files in `erlang-mode` --- .../http_server/src/http_server.app.src | 32 ++--- elvis.config | 130 ++++++++++-------- 2 files changed, 88 insertions(+), 74 deletions(-) diff --git a/.ci/fvt_tests/http_server/src/http_server.app.src b/.ci/fvt_tests/http_server/src/http_server.app.src index 6be2382b6..589612c0a 100644 --- a/.ci/fvt_tests/http_server/src/http_server.app.src +++ b/.ci/fvt_tests/http_server/src/http_server.app.src @@ -1,18 +1,18 @@ %% -*- mode: erlang -*- -{application, http_server, - [{description, "An HTTP server application"}, - {vsn, "0.2.0"}, - {registered, []}, - % {mod, {http_server_app, []}}, - {modules, []}, - {applications, - [kernel, - stdlib, - minirest - ]}, - {env,[]}, - {modules, []}, +{application, http_server, [ + {description, "An HTTP server application"}, + {vsn, "0.2.0"}, + {registered, []}, + % {mod, {http_server_app, []}}, + {modules, []}, + {applications, [ + kernel, + stdlib, + minirest + ]}, + {env, []}, + {modules, []}, - {licenses, ["Apache 2.0"]}, - {links, []} - ]}. + {licenses, ["Apache 2.0"]}, + {links, []} +]}. diff --git a/elvis.config b/elvis.config index 87d739865..232b4f647 100644 --- a/elvis.config +++ b/elvis.config @@ -1,62 +1,76 @@ %% -*- mode: erlang -*- [ - { - elvis, - [ - {config, - [ - #{dirs => ["src", "apps/**/src"], - filter => "*.erl", - ruleset => erl_files, - rules => [ - {elvis_style, macro_names, disable}, - {elvis_style, function_naming_convention, disable}, - {elvis_style, state_record_and_type, disable}, - {elvis_style, no_common_caveats_call, #{}}, - {elvis_style, no_debug_call, #{ debug_functions => [ {ct, pal} - , {ct, print} - ]}}, - {elvis_style, operator_spaces, #{rules => [{right, "|"}, - {left, "|"}, - {right, "||"}, - {left, "||"}]}}, - {elvis_style, dont_repeat_yourself, #{ min_complexity => 20 }}, - {elvis_style, god_modules, #{limit => 100}}, - {elvis_text_style, line_length, #{ limit => 120 % trust erlfmt - , skip_comments => false - }} - ] - }, - #{dirs => ["test", "apps/**/test"], - filter => "*.erl", - rules => [ - {elvis_text_style, line_length, #{ limit => 120 - , skip_comments => false - }}, - {elvis_style, dont_repeat_yourself, #{ min_complexity => 100 }}, - {elvis_style, nesting_level, #{ level => 6 }} - ] - }, - #{dirs => ["apps/emqx_rule_engine/src"], - filter => "*_rule_funcs.erl", - rules => [ - {elvis_style, god_modules, disable} - ] - }, - #{dirs => ["."], - filter => "Makefile", - ruleset => makefiles - }, - #{dirs => ["."], - filter => "rebar.config", - ruleset => rebar_config - }, - #{dirs => ["."], - filter => "elvis.config", - ruleset => elvis_config - } - ] + { + elvis, + [ + {config, [ + #{ + dirs => ["src", "apps/**/src"], + filter => "*.erl", + ruleset => erl_files, + rules => [ + {elvis_style, macro_names, disable}, + {elvis_style, function_naming_convention, disable}, + {elvis_style, state_record_and_type, disable}, + {elvis_style, no_common_caveats_call, #{}}, + {elvis_style, no_debug_call, #{ + debug_functions => [ + {ct, pal}, + {ct, print} + ] + }}, + {elvis_style, operator_spaces, #{ + rules => [ + {right, "|"}, + {left, "|"}, + {right, "||"}, + {left, "||"} + ] + }}, + {elvis_style, dont_repeat_yourself, #{min_complexity => 20}}, + {elvis_style, god_modules, #{limit => 100}}, + % trust erlfmt + {elvis_text_style, line_length, #{ + limit => 120, + skip_comments => false + }} + ] + }, + #{ + dirs => ["test", "apps/**/test"], + filter => "*.erl", + rules => [ + {elvis_text_style, line_length, #{ + limit => 120, + skip_comments => false + }}, + {elvis_style, dont_repeat_yourself, #{min_complexity => 100}}, + {elvis_style, nesting_level, #{level => 6}} + ] + }, + #{ + dirs => ["apps/emqx_rule_engine/src"], + filter => "*_rule_funcs.erl", + rules => [ + {elvis_style, god_modules, disable} + ] + }, + #{ + dirs => ["."], + filter => "Makefile", + ruleset => makefiles + }, + #{ + dirs => ["."], + filter => "rebar.config", + ruleset => rebar_config + }, + #{ + dirs => ["."], + filter => "elvis.config", + ruleset => elvis_config + } + ]} + ] } - ] - } ]. From 51e55dcad8023a93930c6fd59062e1126f955af1 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 4 Jun 2024 17:13:29 +0800 Subject: [PATCH 3/4] style: track reformat commit in git-blame-ignore-revs --- git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git-blame-ignore-revs b/git-blame-ignore-revs index 5e10071ca..8c4a47880 100644 --- a/git-blame-ignore-revs +++ b/git-blame-ignore-revs @@ -39,3 +39,5 @@ a4feb3e6e95c18cb531416112e57520c5ba00d40 72eb34658d31fb38130421949cff262efab51139 # erlfmt rebar.config files and bin/nodetool 5e100f52b8a530f4a952a4b20125ec37b38e2906 +# erlfmt files in `erlang-mode` +336ed1b9223e37adb3336b8edacfd2a9b4238319 From 0eac19ef12611870b367c93419b6b36c190560c8 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Wed, 5 Jun 2024 10:29:18 +0800 Subject: [PATCH 4/4] style: disable elvis `param_pattern_matching` check --- elvis.config | 1 + 1 file changed, 1 insertion(+) diff --git a/elvis.config b/elvis.config index 232b4f647..5095318e0 100644 --- a/elvis.config +++ b/elvis.config @@ -9,6 +9,7 @@ filter => "*.erl", ruleset => erl_files, rules => [ + {elvis_style, param_pattern_matching, disable}, {elvis_style, macro_names, disable}, {elvis_style, function_naming_convention, disable}, {elvis_style, state_record_and_type, disable},