@@ -1990,29 +1990,35 @@ fn field_requests_alignment(field: &LuaTableField) -> bool {
19901990 return false ;
19911991 }
19921992
1993- let Some ( value) = field. get_value_expr ( ) else {
1994- return false ;
1995- } ;
19961993 let Some ( assign_token) = field. syntax ( ) . children_with_tokens ( ) . find_map ( |element| {
19971994 let token = element. into_token ( ) ?;
19981995 ( token. kind ( ) == LuaTokenKind :: TkAssign . into ( ) ) . then_some ( token)
19991996 } ) else {
20001997 return false ;
20011998 } ;
20021999
2003- let field_start = field. syntax ( ) . text_range ( ) . start ( ) ;
2004- let gap_start = usize:: from ( assign_token. text_range ( ) . end ( ) - field_start) ;
2005- let gap_end = usize:: from ( value. syntax ( ) . text_range ( ) . start ( ) - field_start) ;
2006- if gap_end <= gap_start {
2007- return false ;
2008- }
2000+ let mut gap_width = 0usize ;
2001+ let mut previous = assign_token. prev_token ( ) ;
20092002
2010- let text = field. syntax ( ) . text ( ) . to_string ( ) ;
2011- let Some ( gap) = text. get ( gap_start..gap_end) else {
2012- return false ;
2013- } ;
2003+ while let Some ( token) = previous {
2004+ match token. kind ( ) . to_token ( ) {
2005+ LuaTokenKind :: TkWhitespace => {
2006+ for ch in token. text ( ) . chars ( ) . rev ( ) {
2007+ if matches ! ( ch, '\n' | '\r' ) {
2008+ return false ;
2009+ }
2010+ if matches ! ( ch, ' ' | '\t' ) {
2011+ gap_width += 1 ;
2012+ }
2013+ }
2014+ previous = token. prev_token ( ) ;
2015+ }
2016+ LuaTokenKind :: TkEndOfLine => return false ,
2017+ _ => break ,
2018+ }
2019+ }
20142020
2015- !gap . contains ( [ '\n' , '\r' ] ) && gap . chars ( ) . filter ( |ch| matches ! ( ch , ' ' | '\t' ) ) . count ( ) > 1
2021+ gap_width > 1
20162022}
20172023
20182024fn table_group_requests_alignment ( entries : & [ TableEntry ] ) -> bool {
0 commit comments