@@ -278,28 +278,25 @@ impl Document {
278278 let new_id = self . id_generator . next ( ) ;
279279 self . positions [ affected_idx] = ( new_id, new_range) ;
280280
281- if !change. is_whitespace ( ) {
282- // whitespace-only changes should not invalidate the statement
283- changed. push ( StatementChange :: Modified ( ModifiedStatement {
284- old_stmt : Statement {
285- id : old_id,
286- path : self . path . clone ( ) ,
287- } ,
288- old_stmt_text : self . content [ old_range] . to_string ( ) ,
289-
290- new_stmt : Statement {
291- id : new_id,
292- path : self . path . clone ( ) ,
293- } ,
294- new_stmt_text : changed_content[ new_ranges[ 0 ] ] . to_string ( ) ,
295- // change must be relative to the statement
296- change_text : change. text . clone ( ) ,
297- // make sure we always have a valid range >= 0
298- change_range : change_range
299- . checked_sub ( old_range. start ( ) )
300- . unwrap_or ( change_range. sub ( change_range. start ( ) ) ) ,
301- } ) ) ;
302- }
281+ changed. push ( StatementChange :: Modified ( ModifiedStatement {
282+ old_stmt : Statement {
283+ id : old_id,
284+ path : self . path . clone ( ) ,
285+ } ,
286+ old_stmt_text : self . content [ old_range] . to_string ( ) ,
287+
288+ new_stmt : Statement {
289+ id : new_id,
290+ path : self . path . clone ( ) ,
291+ } ,
292+ new_stmt_text : changed_content[ new_ranges[ 0 ] ] . to_string ( ) ,
293+ // change must be relative to the statement
294+ change_text : change. text . clone ( ) ,
295+ // make sure we always have a valid range >= 0
296+ change_range : change_range
297+ . checked_sub ( old_range. start ( ) )
298+ . unwrap_or ( change_range. sub ( change_range. start ( ) ) ) ,
299+ } ) ) ;
303300
304301 self . content = new_content;
305302
@@ -375,10 +372,6 @@ impl Document {
375372}
376373
377374impl ChangeParams {
378- pub fn is_whitespace ( & self ) -> bool {
379- self . text . chars ( ) . count ( ) > 0 && self . text . chars ( ) . all ( char:: is_whitespace)
380- }
381-
382375 pub fn diff_size ( & self ) -> TextSize {
383376 match self . range {
384377 Some ( range) => {
@@ -664,7 +657,7 @@ mod tests {
664657 } ;
665658
666659 let changed1 = d. apply_file_change ( & change1) ;
667- assert_eq ! ( changed1. len( ) , 0 , "should not emit change" ) ;
660+ assert_eq ! ( changed1. len( ) , 1 ) ;
668661 assert_eq ! (
669662 d. content,
670663 "alter table deal alter column value drop not null;\n "
@@ -681,7 +674,7 @@ mod tests {
681674 } ;
682675
683676 let changed2 = d. apply_file_change ( & change2) ;
684- assert_eq ! ( changed2. len( ) , 0 ) ;
677+ assert_eq ! ( changed2. len( ) , 1 ) ;
685678 assert_eq ! (
686679 d. content,
687680 "alter table deal alter column value drop not null;\n "
@@ -698,7 +691,7 @@ mod tests {
698691 } ;
699692
700693 let changed3 = d. apply_file_change ( & change3) ;
701- assert_eq ! ( changed3. len( ) , 0 ) ;
694+ assert_eq ! ( changed3. len( ) , 1 ) ;
702695 assert_eq ! (
703696 d. content,
704697 "alter table deal alter column value drop not null;\n "
@@ -715,7 +708,7 @@ mod tests {
715708 } ;
716709
717710 let changed4 = d. apply_file_change ( & change4) ;
718- assert_eq ! ( changed4. len( ) , 0 ) ;
711+ assert_eq ! ( changed4. len( ) , 1 ) ;
719712 assert_eq ! (
720713 d. content,
721714 "alter table deal alter column value drop not null;\n "
@@ -741,11 +734,7 @@ mod tests {
741734 } ;
742735
743736 let changed1 = d. apply_file_change ( & change1) ;
744- assert_eq ! (
745- changed1. len( ) ,
746- 0 ,
747- "should not emit change if its only whitespace"
748- ) ;
737+ assert_eq ! ( changed1. len( ) , 1 ) ;
749738 assert_eq ! (
750739 d. content,
751740 "select\n *\n from\n test;\n \n select \n \n alter table test\n \n drop column id;"
@@ -867,7 +856,7 @@ mod tests {
867856
868857 let changed = d. apply_file_change ( & change) ;
869858
870- assert_eq ! ( changed. len( ) , 0 ) ;
859+ assert_eq ! ( changed. len( ) , 1 ) ;
871860
872861 assert_document_integrity ( & d) ;
873862 }
0 commit comments