Skip to content

Commit 0b1a7d2

Browse files
authored
refactor: group single line options into single struct (#502)
1 parent 31f1d03 commit 0b1a7d2

File tree

3 files changed

+49
-61
lines changed

3 files changed

+49
-61
lines changed

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ tracing = ["dprint-core/tracing"]
2727
[dependencies]
2828
anyhow = "1.0.64"
2929
deno_ast = { version = "0.26.0", features = ["view"] }
30-
dprint-core = { version = "0.60.0", features = ["formatting"] }
30+
dprint-core = { version = "0.62.0", features = ["formatting"] }
3131
rustc-hash = "1.1.0"
3232
serde = { version = "1.0.144", features = ["derive"] }
3333
serde_json = { version = "1.0", optional = true }

src/generation/generate.rs

Lines changed: 44 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1859,10 +1859,8 @@ fn gen_assignment_expr<'a>(node: &'a AssignExpr, context: &mut Context<'a>) -> P
18591859
prefer_hanging: false,
18601860
force_use_new_lines,
18611861
allow_blank_lines: false,
1862-
single_line_space_at_start: false,
1863-
single_line_space_at_end: false,
1864-
single_line_separator: Signal::SpaceOrNewLine.into(),
1865-
indent_width,
1862+
indent_width: indent_width,
1863+
single_line_options: ir_helpers::SingleLineOptions::separated_same_line(Signal::SpaceOrNewLine.into()),
18661864
multi_line_options: ir_helpers::MultiLineOptions::same_line_start_hanging_indent(),
18671865
force_possible_newline_at_start: false,
18681866
},
@@ -2037,15 +2035,13 @@ fn gen_binary_expr<'a>(node: &'a BinExpr, context: &mut Context<'a>) -> PrintIte
20372035
prefer_hanging: false,
20382036
force_use_new_lines,
20392037
allow_blank_lines: false,
2040-
single_line_space_at_start: false,
2041-
single_line_space_at_end: false,
2042-
single_line_separator: if use_space_surrounding_operator {
2038+
indent_width: indent_width,
2039+
single_line_options: ir_helpers::SingleLineOptions::separated_same_line(if use_space_surrounding_operator {
20432040
Signal::SpaceOrNewLine.into()
20442041
} else {
20452042
PrintItems::new()
2046-
},
2047-
indent_width,
2048-
multi_line_options,
2043+
}),
2044+
multi_line_options: multi_line_options,
20492045
force_possible_newline_at_start: false,
20502046
},
20512047
)
@@ -2818,9 +2814,7 @@ fn gen_sequence_expr<'a>(node: &'a SeqExpr, context: &mut Context<'a>) -> PrintI
28182814
force_use_new_lines: is_node_definitely_above_line_width(node.range(), context),
28192815
allow_blank_lines: false,
28202816
separator: TrailingCommas::Never.into(),
2821-
single_line_space_at_start: false,
2822-
single_line_space_at_end: false,
2823-
custom_single_line_separator: None,
2817+
single_line_options: ir_helpers::SingleLineOptions::same_line_maybe_space_separated(),
28242818
multi_line_options: ir_helpers::MultiLineOptions::same_line_start_hanging_indent(),
28252819
force_possible_newline_at_start: false,
28262820
node_sorter: None,
@@ -3683,9 +3677,7 @@ fn gen_jsx_opening_element<'a>(node: &'a JSXOpeningElement, context: &mut Contex
36833677
force_use_new_lines,
36843678
allow_blank_lines: false,
36853679
separator: Separator::none(),
3686-
single_line_space_at_start: true,
3687-
single_line_space_at_end: false,
3688-
custom_single_line_separator: None,
3680+
single_line_options: ir_helpers::SingleLineOptions::separated_line_starting_with_space(),
36893681
multi_line_options,
36903682
force_possible_newline_at_start: false,
36913683
node_sorter: None,
@@ -4639,10 +4631,8 @@ fn gen_for_stmt<'a>(node: &'a ForStmt, context: &mut Context<'a>) -> PrintItems
46394631
prefer_hanging: context.config.for_statement_prefer_hanging,
46404632
force_use_new_lines,
46414633
allow_blank_lines: false,
4642-
single_line_space_at_start: false,
4643-
single_line_space_at_end: false,
4644-
single_line_separator: separator_after_semi_colons.into(),
46454634
indent_width: context.config.indent_width,
4635+
single_line_options: ir_helpers::SingleLineOptions::separated_same_line(separator_after_semi_colons.into()),
46464636
multi_line_options: ir_helpers::MultiLineOptions::same_line_no_indent(),
46474637
force_possible_newline_at_start: false,
46484638
},
@@ -5175,9 +5165,7 @@ fn gen_var_decl<'a>(node: &'a VarDecl, context: &mut Context<'a>) -> PrintItems
51755165
force_use_new_lines,
51765166
allow_blank_lines: false,
51775167
separator: TrailingCommas::Never.into(),
5178-
single_line_space_at_start: false,
5179-
single_line_space_at_end: false,
5180-
custom_single_line_separator: None,
5168+
single_line_options: ir_helpers::SingleLineOptions::same_line_maybe_space_separated(),
51815169
multi_line_options: ir_helpers::MultiLineOptions::same_line_start_hanging_indent(),
51825170
force_possible_newline_at_start: false,
51835171
node_sorter: None,
@@ -5920,9 +5908,7 @@ fn gen_type_parameters<'a>(node: TypeParamNode<'a>, context: &mut Context<'a>) -
59205908
force_use_new_lines,
59215909
allow_blank_lines: false,
59225910
separator: get_trailing_commas(&node, context).into(),
5923-
single_line_space_at_start: false,
5924-
single_line_space_at_end: false,
5925-
custom_single_line_separator: None,
5911+
single_line_options: ir_helpers::SingleLineOptions::same_line_maybe_space_separated(),
59265912
multi_line_options: ir_helpers::MultiLineOptions::surround_newlines_indented(),
59275913
force_possible_newline_at_start: false,
59285914
node_sorter: None,
@@ -6112,11 +6098,9 @@ fn gen_union_or_intersection_type<'a>(node: UnionOrIntersectionType<'a>, context
61126098
prefer_hanging,
61136099
force_use_new_lines,
61146100
allow_blank_lines: false,
6115-
single_line_space_at_start: false,
6116-
single_line_space_at_end: false,
6117-
single_line_separator: Signal::SpaceOrNewLine.into(),
6118-
indent_width,
6119-
multi_line_options,
6101+
indent_width: indent_width,
6102+
single_line_options: ir_helpers::SingleLineOptions::separated_same_line(Signal::SpaceOrNewLine.into()),
6103+
multi_line_options: multi_line_options,
61206104
force_possible_newline_at_start: false,
61216105
},
61226106
);
@@ -6671,9 +6655,11 @@ fn gen_array_like_nodes<'a>(opts: GenArrayLikeNodesOptions<'a>, context: &mut Co
66716655
force_use_new_lines,
66726656
allow_blank_lines: true,
66736657
separator: trailing_commas.into(),
6674-
single_line_space_at_start: space_around,
6675-
single_line_space_at_end: space_around,
6676-
custom_single_line_separator: None,
6658+
single_line_options: SingleLineOptions {
6659+
space_at_start: space_around,
6660+
space_at_end: space_around,
6661+
separator: Signal::SpaceOrNewLine.into(),
6662+
},
66776663
multi_line_options: ir_helpers::MultiLineOptions::surround_newlines_indented(),
66786664
force_possible_newline_at_start: false,
66796665
node_sorter: None,
@@ -7144,9 +7130,11 @@ where
71447130
force_use_new_lines,
71457131
allow_blank_lines: false,
71467132
separator: trailing_commas.into(),
7147-
single_line_space_at_start: space_around,
7148-
single_line_space_at_end: space_around,
7149-
custom_single_line_separator: None,
7133+
single_line_options: SingleLineOptions {
7134+
space_at_start: space_around,
7135+
space_at_end: space_around,
7136+
separator: Signal::SpaceOrNewLine.into(),
7137+
},
71507138
multi_line_options: if prefer_single_item_hanging {
71517139
MultiLineOptions::maintain_line_breaks()
71527140
} else {
@@ -7374,9 +7362,7 @@ struct GenSeparatedValuesParams<'a> {
73747362
force_use_new_lines: bool,
73757363
allow_blank_lines: bool,
73767364
separator: Separator,
7377-
single_line_space_at_start: bool,
7378-
single_line_space_at_end: bool,
7379-
custom_single_line_separator: Option<PrintItems>,
7365+
single_line_options: ir_helpers::SingleLineOptions,
73807366
multi_line_options: ir_helpers::MultiLineOptions,
73817367
force_possible_newline_at_start: bool,
73827368
node_sorter: Option<Box<dyn Fn((usize, Option<Node<'a>>), (usize, Option<Node<'a>>), &Program<'a>) -> std::cmp::Ordering>>,
@@ -7504,10 +7490,8 @@ fn gen_separated_values_with_result<'a>(opts: GenSeparatedValuesParams<'a>, cont
75047490
prefer_hanging: opts.prefer_hanging,
75057491
force_use_new_lines: opts.force_use_new_lines,
75067492
allow_blank_lines: opts.allow_blank_lines,
7507-
single_line_space_at_start: opts.single_line_space_at_start,
7508-
single_line_space_at_end: opts.single_line_space_at_end,
7509-
single_line_separator: opts.custom_single_line_separator.unwrap_or_else(|| Signal::SpaceOrNewLine.into()),
7510-
indent_width,
7493+
indent_width: indent_width,
7494+
single_line_options: opts.single_line_options,
75117495
multi_line_options: opts.multi_line_options,
75127496
force_possible_newline_at_start: opts.force_possible_newline_at_start,
75137497
},
@@ -7753,9 +7737,7 @@ fn gen_extends_or_implements<'a>(opts: GenExtendsOrImplementsOptions<'a>, contex
77537737
force_use_new_lines: false,
77547738
allow_blank_lines: false,
77557739
separator: TrailingCommas::Never.into(),
7756-
single_line_space_at_start: true,
7757-
single_line_space_at_end: false,
7758-
custom_single_line_separator: None,
7740+
single_line_options: ir_helpers::SingleLineOptions::separated_line_starting_with_space(),
77597741
multi_line_options: ir_helpers::MultiLineOptions::new_line_start(),
77607742
force_possible_newline_at_start: false,
77617743
node_sorter: None,
@@ -7809,9 +7791,11 @@ fn gen_object_like_node<'a>(opts: GenObjectLikeNodeOptions<'a>, context: &mut Co
78097791
force_use_new_lines: force_multi_line,
78107792
allow_blank_lines: opts.allow_blank_lines,
78117793
separator: opts.separator,
7812-
single_line_space_at_start: opts.surround_single_line_with_spaces,
7813-
single_line_space_at_end: opts.surround_single_line_with_spaces,
7814-
custom_single_line_separator: None,
7794+
single_line_options: ir_helpers::SingleLineOptions {
7795+
space_at_start: opts.surround_single_line_with_spaces,
7796+
space_at_end: opts.surround_single_line_with_spaces,
7797+
separator: Signal::SpaceOrNewLine.into(),
7798+
},
78157799
multi_line_options: ir_helpers::MultiLineOptions::surround_newlines_indented(),
78167800
force_possible_newline_at_start: false,
78177801
node_sorter: opts.node_sorter,
@@ -8015,9 +7999,11 @@ fn gen_decorators<'a>(decorators: &[&'a Decorator<'a>], is_inline: bool, context
80157999
force_use_new_lines,
80168000
allow_blank_lines: false,
80178001
separator: Separator::none(),
8018-
single_line_space_at_start: false,
8019-
single_line_space_at_end: is_inline,
8020-
custom_single_line_separator: None,
8002+
single_line_options: ir_helpers::SingleLineOptions {
8003+
space_at_start: false,
8004+
space_at_end: is_inline,
8005+
separator: Signal::SpaceOrNewLine.into(),
8006+
},
80218007
multi_line_options: ir_helpers::MultiLineOptions::same_line_no_indent(),
80228008
force_possible_newline_at_start: false,
80238009
node_sorter: None,
@@ -9128,10 +9114,12 @@ fn gen_surrounded_by_tokens<'a>(
91289114
prefer_hanging: false,
91299115
force_use_new_lines: !is_single_line,
91309116
allow_blank_lines: true,
9131-
single_line_space_at_start: opts.single_line_space_around,
9132-
single_line_space_at_end: opts.single_line_space_around,
9133-
single_line_separator: Signal::SpaceOrNewLine.into(),
9134-
indent_width,
9117+
indent_width: indent_width,
9118+
single_line_options: SingleLineOptions {
9119+
space_at_start: opts.single_line_space_around,
9120+
space_at_end: opts.single_line_space_around,
9121+
separator: Signal::SpaceOrNewLine.into(),
9122+
},
91359123
multi_line_options: ir_helpers::MultiLineOptions::surround_newlines_indented(),
91369124
force_possible_newline_at_start: false,
91379125
},

0 commit comments

Comments
 (0)