@@ -8,7 +8,7 @@ use crate::{
88 JsLabels ,
99 ast_nodes:: { AstNode , AstNodes } ,
1010 best_fitting,
11- formatter:: { Buffer , Format , Formatter , prelude:: * } ,
11+ formatter:: { Buffer , Comments , Format , Formatter , prelude:: * } ,
1212 utils:: {
1313 is_long_curried_call,
1414 member_chain:: {
@@ -72,14 +72,10 @@ impl<'a, 'b> MemberChain<'a, 'b> {
7272 return false ;
7373 } ;
7474
75- let has_comment = first_group. members ( ) . first ( ) . is_some_and ( |member| {
76- matches ! ( member, ChainMember :: StaticMember ( expression)
77- if f. context( ) . comments( ) . has_comment_in_range(
78- expression. object( ) . span( ) . end,
79- expression. property( ) . span. start
80- )
81- )
82- } ) ;
75+ let has_comment = first_group
76+ . members ( )
77+ . first ( )
78+ . is_some_and ( |member| Self :: has_comment_in_member ( member, f. comments ( ) ) ) ;
8379
8480 if has_comment {
8581 return false ;
@@ -179,15 +175,20 @@ impl<'a, 'b> MemberChain<'a, 'b> {
179175 self . head . members ( ) . iter ( ) . chain ( self . tail . members ( ) )
180176 }
181177
178+ /// Check if a member has comments between object and property or end-of-line comments after it
179+ fn has_comment_in_member ( member : & ChainMember , comments : & Comments ) -> bool {
180+ matches ! (
181+ member,
182+ ChainMember :: StaticMember ( member)
183+ if comments. has_comment_in_range( member. object( ) . span( ) . end, member. property( ) . span. start) || comments. has_end_of_line_comment_after( member. span. end)
184+ )
185+ }
186+
182187 fn has_comment ( & self , f : & Formatter < ' _ , ' a > ) -> bool {
183188 let comments = f. comments ( ) ;
184189
185190 for member in self . members ( ) {
186- if matches ! (
187- member,
188- ChainMember :: StaticMember ( member)
189- if comments. has_comment_in_range( member. object( ) . span( ) . end, member. property( ) . span. start)
190- ) {
191+ if Self :: has_comment_in_member ( member, comments) {
191192 return true ;
192193 }
193194 }
0 commit comments