mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-07 21:25:08 +00:00
Add rustfmt.toml file (#18197)
My editor runs `rustfmt` on save to format Rust code, not `cargo fmt`. With our recent bump to the Rust 2024 edition, the formatting that `rustfmt`/`cargo fmt` applies changed. Unfortunately, `rustfmt` and `cargo fmt` have different behaviors for determining which edition to use when formatting: `cargo fmt` looks for the Rust edition in `Cargo.toml`, whereas `rustfmt` looks for it in `rustfmt.toml`. As a result, whenever I save, I have to remember to manually run `cargo fmt` before committing/pushing. There is an open issue asking for `rustfmt` to also look at `Cargo.toml` when it's present (https://github.com/rust-lang/rust.vim/issues/368), but it seems like they "closed" that issue just by bumping the default edition (six years ago, from 2015 to 2018). In the meantime, this PR adds a `rustfmt.toml` file with our current Rust edition so that both invocation have the same behavior. I don't love that this duplicates information in `Cargo.toml`, but I've added a reminder comment there to hopefully ensure that we bump the edition in both places three years from now.
This commit is contained in:
parent
59d80aff9f
commit
569c94b71b
6 changed files with 13 additions and 5 deletions
|
@ -3,6 +3,7 @@ members = ["crates/*"]
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
|
# Please update rustfmt.toml when bumping the Rust edition
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.85"
|
rust-version = "1.85"
|
||||||
homepage = "https://docs.astral.sh/ruff"
|
homepage = "https://docs.astral.sh/ruff"
|
||||||
|
|
|
@ -2,8 +2,13 @@
|
||||||
name = "ruff_text_size"
|
name = "ruff_text_size"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
publish = false
|
publish = false
|
||||||
edition = "2021"
|
authors = { workspace = true }
|
||||||
rust-version = "1.67.1"
|
edition = { workspace = true }
|
||||||
|
rust-version = { workspace = true }
|
||||||
|
homepage = { workspace = true }
|
||||||
|
documentation = { workspace = true }
|
||||||
|
repository = { workspace = true }
|
||||||
|
license = { workspace = true }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde = { workspace = true, optional = true }
|
serde = { workspace = true, optional = true }
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//! bindings to the Workspace API
|
//! bindings to the Workspace API
|
||||||
|
|
||||||
use crate::{TextRange, TextSize};
|
use crate::{TextRange, TextSize};
|
||||||
use schemars::{r#gen::SchemaGenerator, schema::Schema, JsonSchema};
|
use schemars::{JsonSchema, r#gen::SchemaGenerator, schema::Schema};
|
||||||
|
|
||||||
impl JsonSchema for TextSize {
|
impl JsonSchema for TextSize {
|
||||||
fn schema_name() -> String {
|
fn schema_name() -> String {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use {
|
use {
|
||||||
crate::{TextRange, TextSize},
|
crate::{TextRange, TextSize},
|
||||||
serde::{de, Deserialize, Deserializer, Serialize, Serializer},
|
serde::{Deserialize, Deserializer, Serialize, Serializer, de},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl Serialize for TextSize {
|
impl Serialize for TextSize {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use {
|
use {
|
||||||
ruff_text_size::{TextRange, TextSize},
|
ruff_text_size::{TextRange, TextSize},
|
||||||
serde_test::{assert_de_tokens_error, assert_tokens, Token},
|
serde_test::{Token, assert_de_tokens_error, assert_tokens},
|
||||||
std::ops,
|
std::ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
2
rustfmt.toml
Normal file
2
rustfmt.toml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
edition = "2024"
|
||||||
|
style_edition = "2024"
|
Loading…
Add table
Add a link
Reference in a new issue