Skip to content

Commit 2d256b0

Browse files
authored
feat: conditionalExpression.operatorPosition (#414)
1 parent f3965b9 commit 2d256b0

12 files changed

+255
-111
lines changed

deployment/schema.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,9 @@
10911091
"conditionalExpression.operatorPosition": {
10921092
"$ref": "#/definitions/operatorPosition"
10931093
},
1094+
"conditionalType.operatorPosition": {
1095+
"$ref": "#/definitions/operatorPosition"
1096+
},
10941097
"arguments.preferHanging": {
10951098
"$ref": "#/definitions/preferHanging"
10961099
},

src/configuration/builder.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ impl ConfigurationBuilder {
5252
.indent_width(2)
5353
.next_control_flow_position(NextControlFlowPosition::SameLine)
5454
.binary_expression_operator_position(OperatorPosition::SameLine)
55+
.conditional_expression_operator_position(OperatorPosition::NextLine)
56+
.conditional_type_operator_position(OperatorPosition::NextLine)
5557
.brace_position(BracePosition::SameLine)
5658
.comment_line_force_space_after_slashes(false)
5759
.construct_signature_space_after_new_keyword(true)
@@ -757,6 +759,10 @@ impl ConfigurationBuilder {
757759
self.insert("conditionalExpression.operatorPosition", value.to_string().into())
758760
}
759761

762+
pub fn conditional_type_operator_position(&mut self, value: OperatorPosition) -> &mut Self {
763+
self.insert("conditionalType.operatorPosition", value.to_string().into())
764+
}
765+
760766
/* single body position */
761767

762768
pub fn if_statement_single_body_position(&mut self, value: SingleBodyPosition) -> &mut Self {
@@ -1109,6 +1115,7 @@ mod tests {
11091115
/* operator position */
11101116
.binary_expression_operator_position(OperatorPosition::SameLine)
11111117
.conditional_expression_operator_position(OperatorPosition::SameLine)
1118+
.conditional_type_operator_position(OperatorPosition::SameLine)
11121119
/* single body position */
11131120
.if_statement_single_body_position(SingleBodyPosition::SameLine)
11141121
.for_statement_single_body_position(SingleBodyPosition::SameLine)
@@ -1207,7 +1214,7 @@ mod tests {
12071214
.while_statement_space_around(true);
12081215

12091216
let inner_config = config.get_inner_config();
1210-
assert_eq!(inner_config.len(), 170);
1217+
assert_eq!(inner_config.len(), 171);
12111218
let diagnostics = resolve_config(inner_config, &resolve_global_config(ConfigKeyMap::new(), &Default::default()).config).diagnostics;
12121219
assert_eq!(diagnostics.len(), 0);
12131220
}

src/configuration/resolve_config.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ pub fn resolve_config(config: ConfigKeyMap, global_config: &GlobalConfiguration)
165165
/* operator position */
166166
binary_expression_operator_position: get_value(&mut config, "binaryExpression.operatorPosition", operator_position, &mut diagnostics),
167167
conditional_expression_operator_position: get_value(&mut config, "conditionalExpression.operatorPosition", operator_position, &mut diagnostics),
168+
conditional_type_operator_position: get_value(&mut config, "conditionalType.operatorPosition", operator_position, &mut diagnostics),
168169
/* single body position */
169170
if_statement_single_body_position: get_value(&mut config, "ifStatement.singleBodyPosition", single_body_position, &mut diagnostics),
170171
for_statement_single_body_position: get_value(&mut config, "forStatement.singleBodyPosition", single_body_position, &mut diagnostics),

src/configuration/types.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ pub enum NextControlFlowPosition {
9696
generate_str_to_from![NextControlFlowPosition, [Maintain, "maintain"], [SameLine, "sameLine"], [NextLine, "nextLine"]];
9797

9898
/// Where to place the operator for expressions that span multiple lines.
99-
#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
99+
#[derive(Debug, Clone, PartialEq, Copy, Serialize, Deserialize)]
100100
#[serde(rename_all = "camelCase")]
101101
pub enum OperatorPosition {
102102
/// Maintains the operator being on the next line or the same line.
@@ -414,6 +414,8 @@ pub struct Configuration {
414414
pub binary_expression_operator_position: OperatorPosition,
415415
#[serde(rename = "conditionalExpression.operatorPosition")]
416416
pub conditional_expression_operator_position: OperatorPosition,
417+
#[serde(rename = "conditionalType.operatorPosition")]
418+
pub conditional_type_operator_position: OperatorPosition,
417419
/* single body position */
418420
#[serde(rename = "ifStatement.singleBodyPosition")]
419421
pub if_statement_single_body_position: SingleBodyPosition,

0 commit comments

Comments
 (0)