diff src/testdir/test_textobjects.vim @ 14131:ec85acd49b8e v8.1.0083

patch 8.1.0083: "is" and "as" have trouble with quoted punctuation commit https://github.com/vim/vim/commit/8516071124dbb7ad7caa43cc98ae3c57ae093c9e Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 19 18:27:41 2018 +0200 patch 8.1.0083: "is" and "as" have trouble with quoted punctuation Problem: "is" and "as" have trouble with quoted punctuation. Solution: Check for punctuation before a quote. (Jason Franklin)
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jun 2018 18:30:07 +0200
parents e37327129859
children e7f92d1a3fcd
line wrap: on
line diff
--- a/src/testdir/test_textobjects.vim
+++ b/src/testdir/test_textobjects.vim
@@ -165,3 +165,78 @@ x
   norm it
   q!
 endfunc
+
+func Test_sentence()
+  enew!
+  call setline(1, 'A sentence.  A sentence?  A sentence!')
+
+  normal yis
+  call assert_equal('A sentence.', @")
+  normal yas
+  call assert_equal('A sentence.  ', @")
+
+  normal )
+
+  normal yis
+  call assert_equal('A sentence?', @")
+  normal yas
+  call assert_equal('A sentence?  ', @")
+
+  normal )
+
+  normal yis
+  call assert_equal('A sentence!', @")
+  normal yas
+  call assert_equal('  A sentence!', @")
+
+  normal 0
+  normal 2yis
+  call assert_equal('A sentence.  ', @")
+  normal 3yis
+  call assert_equal('A sentence.  A sentence?', @")
+  normal 2yas
+  call assert_equal('A sentence.  A sentence?  ', @")
+
+  %delete _
+endfunc
+
+func Test_sentence_with_quotes()
+  enew!
+  call setline(1, 'A "sentence."  A sentence.')
+
+  normal yis
+  call assert_equal('A "sentence."', @")
+  normal yas
+  call assert_equal('A "sentence."  ', @")
+
+  normal )
+
+  normal yis
+  call assert_equal('A sentence.', @")
+  normal yas
+  call assert_equal('  A sentence.', @")
+
+  %delete _
+endfunc
+
+func! Test_sentence_with_cursor_on_delimiter()
+  enew!
+  call setline(1, "A '([sentence.])'  A sentence.")
+
+  normal! 15|yis
+  call assert_equal("A '([sentence.])'", @")
+  normal! 15|yas
+  call assert_equal("A '([sentence.])'  ", @")
+
+  normal! 16|yis
+  call assert_equal("A '([sentence.])'", @")
+  normal! 16|yas
+  call assert_equal("A '([sentence.])'  ", @")
+
+  normal! 17|yis
+  call assert_equal("A '([sentence.])'", @")
+  normal! 17|yas
+  call assert_equal("A '([sentence.])'  ", @")
+
+  %delete _
+endfunc