diff --git a/src/darker/command_line.py b/src/darker/command_line.py index f6bc2898..9c205964 100644 --- a/src/darker/command_line.py +++ b/src/darker/command_line.py @@ -79,6 +79,13 @@ def make_argument_parser(require_src: bool) -> ArgumentParser: metavar="VERSION", choices=[v.name.lower() for v in TargetVersion], ) + add_arg( + "Formatter to use for reformatting code", + "--formatter", + default="black", + choices=["black"], + metavar="FORMATTER", + ) return parser diff --git a/src/darker/config.py b/src/darker/config.py index 1324901b..dcffcd32 100644 --- a/src/darker/config.py +++ b/src/darker/config.py @@ -24,6 +24,7 @@ class DarkerConfig(BaseConfig, total=False): skip_magic_trailing_comma: bool line_length: int target_version: str + formatter: str class OutputMode: diff --git a/src/darker/tests/test_command_line.py b/src/darker/tests/test_command_line.py index e8940afd..3fb6eb0e 100644 --- a/src/darker/tests/test_command_line.py +++ b/src/darker/tests/test_command_line.py @@ -183,6 +183,30 @@ def get_darker_help_output(capsys): expect_config=("target_version", "py37"), expect_modified=("target_version", "py37"), ), + dict( + argv=["--formatter", "black", "."], + expect_value=("formatter", "black"), + expect_config=("formatter", "black"), + expect_modified=("formatter", ...), + ), + dict( + argv=["--formatter=black", "."], + expect_value=("formatter", "black"), + expect_config=("formatter", "black"), + expect_modified=("formatter", ...), + ), + dict( + argv=["--formatter", "rustfmt", "."], + expect_value=SystemExit, + expect_config=None, + expect_modified=None, + ), + dict( + argv=["--formatter=rustfmt", "."], + expect_value=SystemExit, + expect_config=None, + expect_modified=None, + ), dict( argv=["--target-version", "py39", "."], expect_value=("target_version", "py39"),