@@ -529,6 +529,27 @@ public void ViDeletePreviousLines_LastLine()
529529 ) ) ;
530530 }
531531
532+ // Defect #1674
533+ [ SkippableFact ]
534+ public void ViDeleteToCharBack ( )
535+ {
536+ TestSetup ( KeyMode . Vi ) ;
537+
538+ Test ( "g" , Keys (
539+ "abcdefg" , _ . Escape ,
540+ // delete to the first character 'a'
541+ "dFa" ,
542+ CheckThat ( ( ) => AssertCursorLeftIs ( 0 ) )
543+ ) ) ;
544+
545+ Test ( "06" , Keys (
546+ "0123456" , _ . Escape ,
547+ // delete to the first character '0'
548+ "dT0" , CheckThat ( ( ) => AssertLineIs ( "06" ) ) ,
549+ CheckThat ( ( ) => AssertCursorLeftIs ( 1 ) )
550+ ) ) ;
551+ }
552+
532553 [ SkippableFact ]
533554 public void ViDeleteToEnd ( )
534555 {
@@ -1007,14 +1028,14 @@ public void ViChangeChar()
10071028
10081029 Test ( "0123456" , Keys (
10091030 "0123456" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) ,
1010- "cF0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "abc " ) ) ,
1031+ "cF0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "abc6 " ) ) ,
10111032 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1012- "cF1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0abc" ) ) ,
1013- 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1014- "hcF0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "abc6" ) ) ,
1015- 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1016- "hcF1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0abc6" ) ) ,
1033+ "cF1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0abc6" ) ) ,
10171034 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1035+ "hcF0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "abc56" ) ) ,
1036+ 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 5 ) ) ,
1037+ "hcF1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0abc456" ) ) ,
1038+ 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 4 ) ) ,
10181039 "0cF0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0bc123456" ) ) ,
10191040 'u'
10201041 ) ) ;
@@ -1031,10 +1052,10 @@ public void ViChangeChar()
10311052
10321053 Test ( "0123456" , Keys (
10331054 "0123456" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) ,
1034- "cT1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "01abc" ) ) ,
1035- 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1036- "hcT1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "01abc6" ) ) ,
1055+ "cT1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "01abc6" ) ) ,
10371056 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 6 ) ) ,
1057+ "hcT1abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "01abc56" ) ) ,
1058+ 'u' , CheckThat ( ( ) => AssertLineIs ( "0123456" ) ) , CheckThat ( ( ) => AssertCursorLeftIs ( 5 ) ) ,
10381059 "0cT0abc" , _ . Escape , CheckThat ( ( ) => AssertLineIs ( "0bc123456" ) ) ,
10391060 'u'
10401061 ) ) ;
0 commit comments