@@ -114,6 +114,10 @@ impl Comment {
114
114
self . metadata . has_empty_line_above
115
115
}
116
116
117
+ pub fn has_prev_node_else_keyword ( & self ) -> bool {
118
+ self . metadata . has_prev_node_else_keyword
119
+ }
120
+
117
121
pub fn is_followed_by_bracket_composite_node ( & self ) -> bool {
118
122
self . metadata . is_followed_by_bracket_composite_node
119
123
}
@@ -163,22 +167,26 @@ pub struct CommentMetadata {
163
167
has_empty_line_above : bool ,
164
168
has_empty_line_below : bool ,
165
169
has_prev_node : bool ,
170
+ has_prev_node_else_keyword : bool ,
166
171
is_followed_by_bracket_composite_node : bool ,
167
172
}
168
173
169
174
impl CommentMetadata {
170
175
pub fn from ( node : & Node , comment_type : CommentType ) -> Self {
171
176
let prev = node. prev_named_sibling ( ) ;
172
- let next = node. next_named_sibling ( ) ;
173
-
174
177
let has_prev_node = prev. is_some ( ) ;
175
178
179
+
180
+ let prev_unnamed = node. prev_sibling ( ) ;
181
+ let has_prev_node_else_keyword = prev_unnamed. map ( |n| n. kind ( ) == "else" ) . unwrap_or ( false ) ;
182
+
176
183
let has_leading_content = if let Some ( prev_node) = prev {
177
184
node. start_position ( ) . row == prev_node. end_position ( ) . row
178
185
} else {
179
186
false
180
187
} ;
181
188
189
+ let next = node. next_named_sibling ( ) ;
182
190
let has_trailing_content = match comment_type {
183
191
CommentType :: Line => false ,
184
192
CommentType :: Block => {
@@ -214,6 +222,7 @@ impl CommentMetadata {
214
222
has_empty_line_above,
215
223
has_empty_line_below,
216
224
has_prev_node,
225
+ has_prev_node_else_keyword,
217
226
is_followed_by_bracket_composite_node,
218
227
}
219
228
}
0 commit comments