diff options
-rw-r--r-- | lib/mix/lib/mix/tasks/format.ex | 4 | ||||
-rw-r--r-- | lib/mix/test/mix/tasks/format_test.exs | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/mix/lib/mix/tasks/format.ex b/lib/mix/lib/mix/tasks/format.ex index 52015db56..6d4afc874 100644 --- a/lib/mix/lib/mix/tasks/format.ex +++ b/lib/mix/lib/mix/tasks/format.ex @@ -225,6 +225,10 @@ defmodule Mix.Tasks.Format do IO.warn("--check-equivalent has been deprecated and has no effect") end + if opts[:no_exit] && !opts[:check_formatted] do + Mix.raise("--no-exit can only be used together with --check-formatted") + end + {formatter_opts_and_subs, _sources} = eval_deps_and_subdirectories(dot_formatter, [], formatter_opts, [dot_formatter]) diff --git a/lib/mix/test/mix/tasks/format_test.exs b/lib/mix/test/mix/tasks/format_test.exs index 6e63246e3..cf6f6b544 100644 --- a/lib/mix/test/mix/tasks/format_test.exs +++ b/lib/mix/test/mix/tasks/format_test.exs @@ -175,6 +175,12 @@ defmodule Mix.Tasks.FormatTest do assert_received {:mix_shell, :info, ["The following files are not formatted" <> _]} end + test "raises an error if --no-exit is passed without --check-formatted" do + assert_raise Mix.Error, ~r"--no-exit can only be used together", fn -> + Mix.Tasks.Format.run(["--no-exit", "-"]) + end + end + test "uses inputs and configuration from .formatter.exs", context do in_tmp(context.test, fn -> File.write!(".formatter.exs", """ |