@@ -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,25 @@ 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
+ let prev_unnamed = node. prev_sibling ( ) ;
180
+ let has_prev_node_else_keyword = prev_unnamed. map ( |n| n. kind ( ) == "else" ) . unwrap_or ( false ) ;
181
+
176
182
let has_leading_content = if let Some ( prev_node) = prev {
177
183
node. start_position ( ) . row == prev_node. end_position ( ) . row
178
184
} else {
179
185
false
180
186
} ;
181
187
188
+ let next = node. next_named_sibling ( ) ;
182
189
let has_trailing_content = match comment_type {
183
190
CommentType :: Line => false ,
184
191
CommentType :: Block => {
@@ -214,6 +221,7 @@ impl CommentMetadata {
214
221
has_empty_line_above,
215
222
has_empty_line_below,
216
223
has_prev_node,
224
+ has_prev_node_else_keyword,
217
225
is_followed_by_bracket_composite_node,
218
226
}
219
227
}
0 commit comments