mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
Improve make::struct_ field_list whitespace
Example --- **Before this PR**: ```rust struct Variant{ field: u32 } ``` **After this PR**: ```rust struct Variant { field: u32 } ```
This commit is contained in:
parent
1f4e5e82ff
commit
7e2dc40642
@ -478,7 +478,7 @@ macro_rules! foo {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
struct TheVariant{ the_field: u8 }
|
struct TheVariant { the_field: u8 }
|
||||||
|
|
||||||
enum TheEnum {
|
enum TheEnum {
|
||||||
TheVariant(TheVariant),
|
TheVariant(TheVariant),
|
||||||
@ -502,7 +502,7 @@ enum Foo {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct Bar{ node: Box<Foo> }
|
struct Bar { node: Box<Foo> }
|
||||||
|
|
||||||
enum Foo {
|
enum Foo {
|
||||||
Bar(Bar),
|
Bar(Bar),
|
||||||
@ -519,7 +519,7 @@ enum Foo {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct Bar{ node: Box<Foo>, a: Arc<Box<Foo>> }
|
struct Bar { node: Box<Foo>, a: Arc<Box<Foo>> }
|
||||||
|
|
||||||
enum Foo {
|
enum Foo {
|
||||||
Bar(Bar),
|
Bar(Bar),
|
||||||
@ -560,7 +560,7 @@ enum A { One(One) }"#,
|
|||||||
check_assist(
|
check_assist(
|
||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
"enum A { $0One { foo: u32, bar: u32 } }",
|
"enum A { $0One { foo: u32, bar: u32 } }",
|
||||||
r#"struct One{ foo: u32, bar: u32 }
|
r#"struct One { foo: u32, bar: u32 }
|
||||||
|
|
||||||
enum A { One(One) }"#,
|
enum A { One(One) }"#,
|
||||||
);
|
);
|
||||||
@ -571,7 +571,7 @@ enum A { One(One) }"#,
|
|||||||
check_assist(
|
check_assist(
|
||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
"enum A { $0One { foo: u32 } }",
|
"enum A { $0One { foo: u32 } }",
|
||||||
r#"struct One{ foo: u32 }
|
r#"struct One { foo: u32 }
|
||||||
|
|
||||||
enum A { One(One) }"#,
|
enum A { One(One) }"#,
|
||||||
);
|
);
|
||||||
@ -582,7 +582,7 @@ enum A { One(One) }"#,
|
|||||||
check_assist(
|
check_assist(
|
||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
r"enum En<T> { Var { a: T$0 } }",
|
r"enum En<T> { Var { a: T$0 } }",
|
||||||
r#"struct Var<T>{ a: T }
|
r#"struct Var<T> { a: T }
|
||||||
|
|
||||||
enum En<T> { Var(Var<T>) }"#,
|
enum En<T> { Var(Var<T>) }"#,
|
||||||
);
|
);
|
||||||
@ -599,7 +599,7 @@ enum Enum { Variant{ field: u32$0 } }"#,
|
|||||||
r#"
|
r#"
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
struct Variant{ field: u32 }
|
struct Variant { field: u32 }
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -618,7 +618,7 @@ enum Enum {
|
|||||||
}
|
}
|
||||||
}"#,
|
}"#,
|
||||||
r#"
|
r#"
|
||||||
struct Variant{
|
struct Variant {
|
||||||
field: u32
|
field: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -642,7 +642,7 @@ mod indenting {
|
|||||||
}"#,
|
}"#,
|
||||||
r#"
|
r#"
|
||||||
mod indenting {
|
mod indenting {
|
||||||
struct Variant{
|
struct Variant {
|
||||||
field: u32
|
field: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,7 +668,7 @@ enum A {
|
|||||||
}
|
}
|
||||||
}"#,
|
}"#,
|
||||||
r#"
|
r#"
|
||||||
struct One{
|
struct One {
|
||||||
// leading comment
|
// leading comment
|
||||||
/// doc comment
|
/// doc comment
|
||||||
#[an_attr]
|
#[an_attr]
|
||||||
@ -700,7 +700,7 @@ enum A {
|
|||||||
}
|
}
|
||||||
}"#,
|
}"#,
|
||||||
r#"
|
r#"
|
||||||
struct One{
|
struct One {
|
||||||
// comment
|
// comment
|
||||||
/// doc
|
/// doc
|
||||||
#[attr]
|
#[attr]
|
||||||
@ -747,7 +747,7 @@ enum A {
|
|||||||
/* comment */
|
/* comment */
|
||||||
// other
|
// other
|
||||||
/// comment
|
/// comment
|
||||||
struct One{
|
struct One {
|
||||||
a: u32
|
a: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -789,7 +789,7 @@ enum A {
|
|||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
"enum A { $0One{ a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 } }",
|
"enum A { $0One{ a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 } }",
|
||||||
r#"
|
r#"
|
||||||
struct One{ a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 }
|
struct One { a: u32, pub(crate) b: u32, pub(super) c: u32, d: u32 }
|
||||||
|
|
||||||
enum A { One(One) }"#,
|
enum A { One(One) }"#,
|
||||||
);
|
);
|
||||||
@ -850,7 +850,7 @@ pub enum A { One(One) }"#,
|
|||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
"pub(in something) enum A { $0One{ a: u32, b: u32 } }",
|
"pub(in something) enum A { $0One{ a: u32, b: u32 } }",
|
||||||
r#"
|
r#"
|
||||||
pub(in something) struct One{ pub(in something) a: u32, pub(in something) b: u32 }
|
pub(in something) struct One { pub(in something) a: u32, pub(in something) b: u32 }
|
||||||
|
|
||||||
pub(in something) enum A { One(One) }"#,
|
pub(in something) enum A { One(One) }"#,
|
||||||
);
|
);
|
||||||
@ -862,7 +862,7 @@ pub(in something) enum A { One(One) }"#,
|
|||||||
extract_struct_from_enum_variant,
|
extract_struct_from_enum_variant,
|
||||||
"pub(crate) enum A { $0One{ a: u32, b: u32, c: u32 } }",
|
"pub(crate) enum A { $0One{ a: u32, b: u32, c: u32 } }",
|
||||||
r#"
|
r#"
|
||||||
pub(crate) struct One{ pub(crate) a: u32, pub(crate) b: u32, pub(crate) c: u32 }
|
pub(crate) struct One { pub(crate) a: u32, pub(crate) b: u32, pub(crate) c: u32 }
|
||||||
|
|
||||||
pub(crate) enum A { One(One) }"#,
|
pub(crate) enum A { One(One) }"#,
|
||||||
);
|
);
|
||||||
@ -933,7 +933,7 @@ fn f() {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct V{ i: i32, j: i32 }
|
struct V { i: i32, j: i32 }
|
||||||
|
|
||||||
enum E {
|
enum E {
|
||||||
V(V)
|
V(V)
|
||||||
@ -1027,7 +1027,7 @@ fn f() {
|
|||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
//- /main.rs
|
//- /main.rs
|
||||||
struct V{ i: i32, j: i32 }
|
struct V { i: i32, j: i32 }
|
||||||
|
|
||||||
enum E {
|
enum E {
|
||||||
V(V)
|
V(V)
|
||||||
@ -1057,7 +1057,7 @@ fn foo() {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct One{ a: u32, b: u32 }
|
struct One { a: u32, b: u32 }
|
||||||
|
|
||||||
enum A { One(One) }
|
enum A { One(One) }
|
||||||
|
|
||||||
@ -1114,7 +1114,7 @@ enum X<'a, 'b, 'x> {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct A<'a, 'x>{ a: &'a &'x mut () }
|
struct A<'a, 'x> { a: &'a &'x mut () }
|
||||||
|
|
||||||
enum X<'a, 'b, 'x> {
|
enum X<'a, 'b, 'x> {
|
||||||
A(A<'a, 'x>),
|
A(A<'a, 'x>),
|
||||||
@ -1136,7 +1136,7 @@ enum X<'b, T, V, const C: usize> {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct A<'b, T, const C: usize>{ a: T, b: X<'b>, c: [u8; C] }
|
struct A<'b, T, const C: usize> { a: T, b: X<'b>, c: [u8; C] }
|
||||||
|
|
||||||
enum X<'b, T, V, const C: usize> {
|
enum X<'b, T, V, const C: usize> {
|
||||||
A(A<'b, T, C>),
|
A(A<'b, T, C>),
|
||||||
@ -1158,7 +1158,7 @@ enum X<'a, 'b> {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct C{ c: () }
|
struct C { c: () }
|
||||||
|
|
||||||
enum X<'a, 'b> {
|
enum X<'a, 'b> {
|
||||||
A { a: &'a () },
|
A { a: &'a () },
|
||||||
@ -1180,7 +1180,7 @@ enum En<T: TraitT, V: TraitV> {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct A<T: TraitT>{ a: T }
|
struct A<T: TraitT> { a: T }
|
||||||
|
|
||||||
enum En<T: TraitT, V: TraitV> {
|
enum En<T: TraitT, V: TraitV> {
|
||||||
A(A<T>),
|
A(A<T>),
|
||||||
|
@ -233,7 +233,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize)]
|
#[derive(Serialize)]
|
||||||
struct Root1{ bar: f64, bay: i64, baz: (), r#box: bool, foo: String }
|
struct Root1 { bar: f64, bay: i64, baz: (), r#box: bool, foo: String }
|
||||||
|
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
@ -252,9 +252,9 @@ mod tests {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct Value1{ }
|
struct Value1 { }
|
||||||
struct Bar1{ kind: String, value: Value1 }
|
struct Bar1 { kind: String, value: Value1 }
|
||||||
struct Root1{ bar: Bar1, foo: String }
|
struct Root1 { bar: Bar1, foo: String }
|
||||||
|
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
@ -284,12 +284,12 @@ mod tests {
|
|||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
r#"
|
r#"
|
||||||
struct Address1{ house: i64, street: String }
|
struct Address1 { house: i64, street: String }
|
||||||
struct User1{ address: Address1, email: String }
|
struct User1 { address: Address1, email: String }
|
||||||
struct AnotherUser1{ user: User1 }
|
struct AnotherUser1 { user: User1 }
|
||||||
struct Address2{ house: i64, street: String }
|
struct Address2 { house: i64, street: String }
|
||||||
struct User2{ address: Address2, email: String }
|
struct User2 { address: Address2, email: String }
|
||||||
struct Root1{ another_user: AnotherUser1, user: User2 }
|
struct Root1 { another_user: AnotherUser1, user: User2 }
|
||||||
|
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
@ -326,9 +326,9 @@ mod tests {
|
|||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct OfObject1{ x: i64, y: i64 }
|
struct OfObject1 { x: i64, y: i64 }
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct Root1{ empty: Vec<_>, nested: Vec<Vec<Vec<i64>>>, of_object: Vec<OfObject1>, of_string: Vec<String> }
|
struct Root1 { empty: Vec<_>, nested: Vec<Vec<Vec<i64>>>, of_object: Vec<OfObject1>, of_string: Vec<String> }
|
||||||
|
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
|
@ -1244,14 +1244,17 @@ pub fn struct_(
|
|||||||
generic_param_list: Option<ast::GenericParamList>,
|
generic_param_list: Option<ast::GenericParamList>,
|
||||||
field_list: ast::FieldList,
|
field_list: ast::FieldList,
|
||||||
) -> ast::Struct {
|
) -> ast::Struct {
|
||||||
let semicolon = if matches!(field_list, ast::FieldList::TupleFieldList(_)) { ";" } else { "" };
|
let (semicolon, ws) =
|
||||||
|
if matches!(field_list, ast::FieldList::TupleFieldList(_)) { (";", "") } else { ("", " ") };
|
||||||
let type_params = generic_param_list.map_or_else(String::new, |it| it.to_string());
|
let type_params = generic_param_list.map_or_else(String::new, |it| it.to_string());
|
||||||
let visibility = match visibility {
|
let visibility = match visibility {
|
||||||
None => String::new(),
|
None => String::new(),
|
||||||
Some(it) => format!("{it} "),
|
Some(it) => format!("{it} "),
|
||||||
};
|
};
|
||||||
|
|
||||||
ast_from_text(&format!("{visibility}struct {strukt_name}{type_params}{field_list}{semicolon}",))
|
ast_from_text(&format!(
|
||||||
|
"{visibility}struct {strukt_name}{type_params}{ws}{field_list}{semicolon}"
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn enum_(
|
pub fn enum_(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user