ruff/crates/ruff_python_formatter
Dhruv Manilawala 47f0b45be3
Implement AstNode for Identifier (#13207)
## Summary

Follow-up to #13147, this PR implements the `AstNode` for `Identifier`.
This makes it easier to create the `NodeKey` in red knot because it uses
a generic method to construct the key from `AnyNodeRef` and is important
for definitions that are created only on identifiers instead of
`ExprName`.

## Test Plan

`cargo test` and `cargo clippy`
2024-09-02 16:27:12 +05:30
..
resources/test/fixtures Fix incorrect placement of leading function comment with type params (#12447) 2024-07-22 14:17:00 +02:00
src Implement AstNode for Identifier (#13207) 2024-09-02 16:27:12 +05:30
tests Fix incorrect placement of leading function comment with type params (#12447) 2024-07-22 14:17:00 +02:00
Cargo.toml Fix formatter instability for lines only consisting of zero-width characters (#11748) 2024-06-05 17:55:14 +02:00
CONTRIBUTING.md Remove remaining ruff_shrinking references (#11272) 2024-05-03 20:22:08 +00:00
generate.py Split string formatting to individual nodes (#9058) 2023-12-14 12:55:10 -06:00
orphan_rules_in_the_formatter.svg Generate FormatRule definitions (#4724) 2023-06-01 08:38:53 +02:00
README.md Move deviations from formatter README to documentation (#10444) 2024-03-18 08:22:28 +00:00

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 Black compatibility.

Getting started

The Ruff formatter is available as of Ruff v0.1.2. Head to The Ruff Formatter for usage instructions and a comparison to Black.