ruff/crates/ruff_python_formatter
Christian Aguilera 166b9d18ee [`ruff`] Ability to specify `--range` multiple times.
## Summary

Text ranges that overlap (or are adjacent) will be collapsed. This is
done after text ranges have been adjusted to their enclosing nodes in
the tree. Formatting of each range is then performed starting from the
bottom of the file, ensuring that the following range still applies to
the lines that the user intended to format.

Implements #12800.

## Test Plan

- Pre-existing unit tests ensure no regression or unexpected behavior
  change in regular executions with a single `--range` argument.
- New unit tests have been added to cover the feature enhancement.
2025-10-25 13:32:25 +01:00
..
resources/test/fixtures Avoid reusing nested, interpolated quotes before Python 3.12 (#20930) 2025-10-17 08:49:16 -04:00
src [`ruff`] Ability to specify `--range` multiple times. 2025-10-25 13:32:25 +01:00
tests Render a diagnostic for syntax errors introduced in formatter tests (#21021) 2025-10-21 13:47:26 -04:00
CONTRIBUTING.md [ty] AST garbage collection (#18482) 2025-06-13 08:40:11 -04:00
Cargo.toml [`ruff`] Update schemars to v1 (#20942) 2025-10-20 08:59:52 +02:00
README.md Add f-string formatting to the docs (#15367) 2025-01-09 10:20:06 +01:00
generate.py Implement template strings (#17851) 2025-05-30 15:00:56 -05:00
orphan_rules_in_the_formatter.svg Generate FormatRule definitions (#4724) 2023-06-01 08:38:53 +02:00

README.md

Ruff Formatter

The Ruff formatter is an extremely fast Python code formatter that ships as part of the ruff CLI.

Goals

The formatter is designed to be a drop-in replacement for Black, but with an excessive focus on performance and direct integration with Ruff.

Specifically, the formatter is intended to emit near-identical output when run over Black-formatted code. When run over extensive Black-formatted projects like Django and Zulip, > 99.9% of lines are formatted identically. When migrating an existing project from Black to Ruff, you should expect to see a few differences on the margins, but the vast majority of your code should be unchanged.

If you identify deviations in your project, spot-check them against the intentional deviations enumerated below, as well as the unintentional deviations filed in the issue tracker. If you've identified a new deviation, please file an issue.

When run over non-Black-formatted code, the formatter makes some different decisions than Black, and so more deviations should be expected, especially around the treatment of end-of-line comments. For details, see Style Guide.

Getting started

Head to The Ruff Formatter for usage instructions and a comparison to Black.