annotate src/testdir/test_search.vim @ 29022:e79bfdc53aee v8.2.5033

patch 8.2.5033: build error with +eval but without +quickfix Commit: https://github.com/vim/vim/commit/968443efb5a2a1ed7e1084f2aff65a95f2d0a17b Author: Bram Moolenaar <Bram@vim.org> Date: Fri May 27 21:16:34 2022 +0100 patch 8.2.5033: build error with +eval but without +quickfix Problem: Build error with +eval but without +quickfix. Warning for uninitialized variable. Solution: Adjust #ifdefs. (John Marriott)
author Bram Moolenaar <Bram@vim.org>
date Fri, 27 May 2022 22:30:03 +0200
parents e96111a91a21
children a2710736125a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Test for the search command
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
3 source shared.vim
13790
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
4 source screendump.vim
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
5 source check.vim
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
6
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_search_cmdline()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
8 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
9
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 " need to disable char_avail,
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 " so that expansion of commandline works
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
12 call test_override("char_avail", 1)
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 new
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call setline(1, [' 1', ' 2 these', ' 3 the', ' 4 their', ' 5 there', ' 6 their', ' 7 the', ' 8 them', ' 9 these', ' 10 foobar'])
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 " Test 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 " CTRL-N / CTRL-P skips through the previous search history
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 set noincsearch
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 call feedkeys("/foobar\<cr>", 'tx')
19973
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
20 call feedkeys("/the\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 call assert_equal('the', @/)
19973
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
22 call feedkeys("/thes\<C-P>\<C-P>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 call assert_equal('foobar', @/)
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 " Test 2
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
26 " Ctrl-G goes from one match to the next
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 " until the end of the buffer
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 set incsearch nowrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 call feedkeys("/the\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 " second match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
35 call feedkeys("/the\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 call assert_equal(' 3 the', getline('.'))
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
37 call assert_equal([0, 0, 0, 0], getpos('"'))
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 " third match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
40 call feedkeys("/the".repeat("\<C-G>", 2)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 call assert_equal(' 4 their', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 " fourth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
44 call feedkeys("/the".repeat("\<C-G>", 3)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 call assert_equal(' 5 there', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 " fifth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
48 call feedkeys("/the".repeat("\<C-G>", 4)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 call assert_equal(' 6 their', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 " sixth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
52 call feedkeys("/the".repeat("\<C-G>", 5)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 call assert_equal(' 7 the', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 " seventh match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
56 call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 call assert_equal(' 8 them', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 :1
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
59 " eighth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
60 call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 " no further match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
64 call feedkeys("/the".repeat("\<C-G>", 8)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 call assert_equal(' 9 these', getline('.'))
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
66 call assert_equal([0, 0, 0, 0], getpos('"'))
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 " Test 3
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
69 " Ctrl-G goes from one match to the next
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 " and continues back at the top
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 set incsearch wrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 call feedkeys("/the\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
76 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 " second match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
78 call feedkeys("/the\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79 call assert_equal(' 3 the', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 " third match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
82 call feedkeys("/the".repeat("\<C-G>", 2)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 call assert_equal(' 4 their', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 " fourth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
86 call feedkeys("/the".repeat("\<C-G>", 3)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87 call assert_equal(' 5 there', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 " fifth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
90 call feedkeys("/the".repeat("\<C-G>", 4)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 call assert_equal(' 6 their', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 " sixth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
94 call feedkeys("/the".repeat("\<C-G>", 5)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95 call assert_equal(' 7 the', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
96 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
97 " seventh match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
98 call feedkeys("/the".repeat("\<C-G>", 6)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 call assert_equal(' 8 them', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 :1
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
101 " eighth match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
102 call feedkeys("/the".repeat("\<C-G>", 7)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 :1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 " back at first match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
106 call feedkeys("/the".repeat("\<C-G>", 8)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 " Test 4
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
110 " CTRL-T goes to the previous match
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 set incsearch nowrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114 call feedkeys("?the\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 " first match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
118 call feedkeys("?the\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
120 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
121 " second match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
122 call feedkeys("?the".repeat("\<C-T>", 1)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
123 call assert_equal(' 8 them', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125 " last match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
126 call feedkeys("?the".repeat("\<C-T>", 7)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
129 " last match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
130 call feedkeys("?the".repeat("\<C-T>", 8)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
131 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
132
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
133 " Test 5
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
134 " CTRL-T goes to the previous match
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135 set incsearch wrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 call feedkeys("?the\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 " first match at the top
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
142 call feedkeys("?the\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 " second match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
146 call feedkeys("?the".repeat("\<C-T>", 1)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 call assert_equal(' 8 them', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 " last match
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
150 call feedkeys("?the".repeat("\<C-T>", 7)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152 $
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
153 " back at the bottom of the buffer
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
154 call feedkeys("?the".repeat("\<C-T>", 8)."\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
155 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
157 " Test 6
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 " CTRL-L adds to the search pattern
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
159 set incsearch wrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162 call feedkeys("/the\<c-l>\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
164 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 " go to next match of 'thes'
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
166 call feedkeys("/the\<c-l>\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 " wrap around
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
170 call feedkeys("/the\<c-l>\<C-G>\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173 " wrap around
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 set nowrapscan
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
175 call feedkeys("/the\<c-l>\<C-G>\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 call assert_equal(' 9 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 " Test 7
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 " <bs> remove from match, but stay at current match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 set incsearch wrapscan
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 call feedkeys("/thei\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184 call assert_equal(' 4 their', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 " delete one char, add another
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 call feedkeys("/thei\<bs>s\<cr>", 'tx')
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
188 call assert_equal(' 2 these', getline('.'))
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 " delete one char, add another, go to previous match, add one char
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
191 call feedkeys("/thei\<bs>s\<bs>\<C-T>\<c-l>\<cr>", 'tx')
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
192 call assert_equal(' 9 these', getline('.'))
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
194 " delete all chars, start from the beginning again
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
195 call feedkeys("/them". repeat("\<bs>",4).'the\>'."\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196 call assert_equal(' 3 the', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 " clean up
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
199 call test_override("char_avail", 0)
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
200 bw!
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
201 endfunc
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
202
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
203 func Test_search_cmdline2()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
204 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
205
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
206 " need to disable char_avail,
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
207 " so that expansion of commandline works
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
208 call test_override("char_avail", 1)
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
209 new
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
210 call setline(1, [' 1', ' 2 these', ' 3 the theother'])
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
211 " Test 1
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
212 " Ctrl-T goes correctly back and forth
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
213 set incsearch
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
214 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
215 " first match
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
216 call feedkeys("/the\<cr>", 'tx')
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
217 call assert_equal(' 2 these', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
218 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
219 " go to next match (on next line)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
220 call feedkeys("/the\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
221 call assert_equal(' 3 the theother', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
222 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
223 " go to next match (still on line 3)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
224 call feedkeys("/the\<C-G>\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 call assert_equal(' 3 the theother', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
226 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
227 " go to next match (still on line 3)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
228 call feedkeys("/the\<C-G>\<C-G>\<C-G>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229 call assert_equal(' 3 the theother', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
230 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
231 " go to previous match (on line 3)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
232 call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
233 call assert_equal(' 3 the theother', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
234 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
235 " go to previous match (on line 3)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
236 call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<C-T>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
237 call assert_equal(' 3 the theother', getline('.'))
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
238 1
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
239 " go to previous match (on line 2)
9990
6a1793d9c895 commit https://github.com/vim/vim/commit/1195669f9e434fa9ab8b57ee9470bf951e4990b8
Christian Brabandt <cb@256bit.org>
parents: 9971
diff changeset
240 call feedkeys("/the\<C-G>\<C-G>\<C-G>\<C-T>\<C-T>\<C-T>\<cr>", 'tx')
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
241 call assert_equal(' 2 these', getline('.'))
17411
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
242 1
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
243 " go to previous match (on line 2)
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
244 call feedkeys("/the\<C-G>\<C-R>\<C-W>\<cr>", 'tx')
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
245 call assert_equal('theother', @/)
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
246
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
247 " Test 2: keep the view,
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
248 " after deleting a character from the search cmd
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
249 call setline(1, [' 1', ' 2 these', ' 3 the', ' 4 their', ' 5 there', ' 6 their', ' 7 the', ' 8 them', ' 9 these', ' 10 foobar'])
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
250 resize 5
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
251 1
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
252 call feedkeys("/foo\<bs>\<cr>", 'tx')
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
253 redraw
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
254 call assert_equal({'lnum': 10, 'leftcol': 0, 'col': 4, 'topfill': 0, 'topline': 6, 'coladd': 0, 'skipcol': 0, 'curswant': 4}, winsaveview())
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
255
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
256 " remove all history entries
17411
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
257 for i in range(11)
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
258 call histdel('/')
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
259 endfor
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
260
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
261 " Test 3: reset the view,
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
262 " after deleting all characters from the search cmd
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
263 norm! 1gg0
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
264 " unfortunately, neither "/foo\<c-w>\<cr>", nor "/foo\<bs>\<bs>\<bs>\<cr>",
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
265 " nor "/foo\<c-u>\<cr>" works to delete the commandline.
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
266 " In that case Vim should return "E35 no previous regular expression",
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
267 " but it looks like Vim still sees /foo and therefore the test fails.
17918
9606c0adc148 patch 8.1.1955: tests contain typos
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
268 " Therefore, disabling this test
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21491
diff changeset
269 "call assert_fails(feedkeys("/foo\<c-w>\<cr>", 'tx'), 'E35:')
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
270 "call assert_equal({'lnum': 1, 'leftcol': 0, 'col': 0, 'topfill': 0, 'topline': 1, 'coladd': 0, 'skipcol': 0, 'curswant': 0}, winsaveview())
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
271
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
272 " clean up
10098
72e4b7f90465 commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Christian Brabandt <cb@256bit.org>
parents: 9990
diff changeset
273 set noincsearch
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
274 call test_override("char_avail", 0)
9971
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
275 bw!
98b39d2eb895 commit https://github.com/vim/vim/commit/4d6f32cbfbaf324ac4a25c0206a5db0e9f7a48f7
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
276 endfunc
10172
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
277
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
278 func Test_use_sub_pat()
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
279 split
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
280 let @/ = ''
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
281 func X()
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
282 s/^/a/
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
283 /
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
284 endfunc
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
285 call X()
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
286 bwipe!
ab45de65977b commit https://github.com/vim/vim/commit/ea683da58cf9ecf3afab9d650d3d2da76e5298d3
Christian Brabandt <cb@256bit.org>
parents: 10098
diff changeset
287 endfunc
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
288
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
289 func Test_searchpair()
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
290 new
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
291 call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
292
22405
0ef3ae4ec70e patch 8.2.1751: using 2 where bool is expected may throw an error
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
293 " should not give an error for using "42"
0ef3ae4ec70e patch 8.2.1751: using 2 where bool is expected may throw an error
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
294 call assert_equal(0, searchpair('a', 'b', 'c', '', 42))
0ef3ae4ec70e patch 8.2.1751: using 2 where bool is expected may throw an error
Bram Moolenaar <Bram@vim.org>
parents: 22087
diff changeset
295
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
296 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
297 call assert_equal(3, searchpair('\[', '', ']', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
298 call assert_equal([0, 3, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
299 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
300 call assert_equal(2, searchpair('\[', '', ']', 'bWr'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
301 call assert_equal([0, 2, 6, 0], getpos('.'))
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
302 4
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
303 call assert_equal(1, searchpair('\[', '', ']', 'bWm'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
304 call assert_equal([0, 3, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
305 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
306 call assert_equal(5, searchpair('\[', '', ']', 'Wn'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
307 call assert_equal([0, 4, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
308 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
309 call assert_equal(2, searchpair('\[', '', ']', 'bW',
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
310 \ 'getline(".") =~ "^\\s*\["'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
311 call assert_equal([0, 2, 6, 0], getpos('.'))
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
312 set nomagic
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
313 4
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
314 call assert_equal(3, searchpair('\[', '', ']', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
315 call assert_equal([0, 3, 2, 0], getpos('.'))
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
316 set magic
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
317 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
318 call assert_equal(0, searchpair('{', '', '}', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
319 call assert_equal([0, 4, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
320
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
321 %d
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
322 call setline(1, ['if 1', ' if 2', ' else', ' endif 2', 'endif 1'])
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
323
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
324 /\<if 1
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
325 call assert_equal(5, searchpair('\<if\>', '\<else\>', '\<endif\>', 'W'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
326 call assert_equal([0, 5, 1, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
327 /\<if 2
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
328 call assert_equal(3, searchpair('\<if\>', '\<else\>', '\<endif\>', 'W'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
329 call assert_equal([0, 3, 3, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
330
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
331 q!
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
332 endfunc
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
333
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
334 func Test_searchpairpos()
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
335 new
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
336 call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
337
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
338 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
339 call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
340 call assert_equal([0, 3, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
341 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
342 call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
343 call assert_equal([0, 2, 6, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
344 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
345 call assert_equal([5, 2], searchpairpos('\[', '', ']', 'Wn'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
346 call assert_equal([0, 4, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
347 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
348 call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bW',
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
349 \ 'getline(".") =~ "^\\s*\["'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
350 call assert_equal([0, 2, 6, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
351 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
352 call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
353 call assert_equal([0, 2, 6, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
354 set nomagic
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
355 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
356 call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
357 call assert_equal([0, 3, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
358 set magic
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
359 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
360 call assert_equal([0, 0], searchpairpos('{', '', '}', 'bW'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
361 call assert_equal([0, 4, 2, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
362
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
363 %d
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
364 call setline(1, ['if 1', ' if 2', ' else', ' endif 2', 'endif 1'])
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
365 /\<if 1
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
366 call assert_equal([5, 1], searchpairpos('\<if\>', '\<else\>', '\<endif\>', 'W'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
367 call assert_equal([0, 5, 1, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
368 /\<if 2
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
369 call assert_equal([3, 3], searchpairpos('\<if\>', '\<else\>', '\<endif\>', 'W'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
370 call assert_equal([0, 3, 3, 0], getpos('.'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
371
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
372 q!
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
373 endfunc
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
374
14189
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
375 func Test_searchpair_errors()
25198
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
376 call assert_fails("call searchpair([0], 'middle', 'end', 'bW', 'skip', 99, 100)", 'E730: Using a List as a String')
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
377 call assert_fails("call searchpair('start', {-> 0}, 'end', 'bW', 'skip', 99, 100)", 'E729: Using a Funcref as a String')
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
378 call assert_fails("call searchpair('start', 'middle', {'one': 1}, 'bW', 'skip', 99, 100)", 'E731: Using a Dictionary as a String')
14189
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
379 call assert_fails("call searchpair('start', 'middle', 'end', 'flags', 'skip', 99, 100)", 'E475: Invalid argument: flags')
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
380 call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', -99, 100)", 'E475: Invalid argument: -99')
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
381 call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', 99, -100)", 'E475: Invalid argument: -100')
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
382 call assert_fails("call searchpair('start', 'middle', 'end', 'e')", 'E475: Invalid argument: e')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
383 call assert_fails("call searchpair('start', 'middle', 'end', 'sn')", 'E475: Invalid argument: sn')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
384 endfunc
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
385
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
386 func Test_searchpairpos_errors()
25198
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
387 call assert_fails("call searchpairpos([0], 'middle', 'end', 'bW', 'skip', 99, 100)", 'E730: Using a List as a String')
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
388 call assert_fails("call searchpairpos('start', {-> 0}, 'end', 'bW', 'skip', 99, 100)", 'E729: Using a Funcref as a String')
eafc0e07b188 patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents: 24745
diff changeset
389 call assert_fails("call searchpairpos('start', 'middle', {'one': 1}, 'bW', 'skip', 99, 100)", 'E731: Using a Dictionary as a String')
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
390 call assert_fails("call searchpairpos('start', 'middle', 'end', 'flags', 'skip', 99, 100)", 'E475: Invalid argument: flags')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
391 call assert_fails("call searchpairpos('start', 'middle', 'end', 'bW', 'func', -99, 100)", 'E475: Invalid argument: -99')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
392 call assert_fails("call searchpairpos('start', 'middle', 'end', 'bW', 'func', 99, -100)", 'E475: Invalid argument: -100')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
393 call assert_fails("call searchpairpos('start', 'middle', 'end', 'e')", 'E475: Invalid argument: e')
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
394 call assert_fails("call searchpairpos('start', 'middle', 'end', 'sn')", 'E475: Invalid argument: sn')
14189
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
395 endfunc
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
396
12722
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
397 func Test_searchpair_skip()
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
398 func Zero()
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
399 return 0
12722
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
400 endfunc
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
401 func Partial(x)
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
402 return a:x
12722
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
403 endfunc
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
404 new
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
405 call setline(1, ['{', 'foo', 'foo', 'foo', '}'])
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
406 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', ''))
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
407 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', '0'))
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
408 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', {-> 0}))
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
409 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', function('Zero')))
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
410 3 | call assert_equal(1, searchpair('{', '', '}', 'bWn', function('Partial', [0])))
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
411 bw!
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
412 endfunc
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12720
diff changeset
413
14331
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
414 func Test_searchpair_leak()
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
415 new
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
416 call setline(1, 'if one else another endif')
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
417
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
418 " The error in the skip expression caused memory to leak.
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
419 call assert_fails("call searchpair('\\<if\\>', '\\<else\\>', '\\<endif\\>', '', '\"foo\" 2')", 'E15:')
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
420
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
421 bwipe!
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
422 endfunc
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
423
11018
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
424 func Test_searchc()
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
425 " These commands used to cause memory overflow in searchc().
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
426 new
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
427 norm ixx
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
428 exe "norm 0t\u93cf"
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
429 bw!
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
430 endfunc
11613
7428a08c2f68 patch 8.0.0689: ~ character not escaped when extending search pattern
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
431
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
432 func Cmdline3_prep()
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
433 " need to disable char_avail,
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
434 " so that expansion of commandline works
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
435 call test_override("char_avail", 1)
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
436 new
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
437 call setline(1, [' 1', ' 2 the~e', ' 3 the theother'])
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
438 set incsearch
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
439 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
440
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
441 func Incsearch_cleanup()
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
442 set noincsearch
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
443 call test_override("char_avail", 0)
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
444 bw!
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
445 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
446
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
447 func Test_search_cmdline3()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
448 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
449
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
450 call Cmdline3_prep()
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
451 1
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
452 " first match
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
453 call feedkeys("/the\<c-l>\<cr>", 'tx')
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
454 call assert_equal(' 2 the~e', getline('.'))
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
455
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
456 call Incsearch_cleanup()
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
457 endfunc
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
458
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
459 func Test_search_cmdline3s()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
460 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
461
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
462 call Cmdline3_prep()
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
463 1
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
464 call feedkeys(":%s/the\<c-l>/xxx\<cr>", 'tx')
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
465 call assert_equal(' 2 xxxe', getline('.'))
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
466 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
467 call feedkeys(":%subs/the\<c-l>/xxx\<cr>", 'tx')
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
468 call assert_equal(' 2 xxxe', getline('.'))
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
469 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
470 call feedkeys(":%substitute/the\<c-l>/xxx\<cr>", 'tx')
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
471 call assert_equal(' 2 xxxe', getline('.'))
14546
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
472 undo
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
473 call feedkeys(":%smagic/the.e/xxx\<cr>", 'tx')
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
474 call assert_equal(' 2 xxx', getline('.'))
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
475 undo
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21491
diff changeset
476 call assert_fails(":%snomagic/the.e/xxx\<cr>", 'E486:')
14546
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
477 "
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
478 call feedkeys(":%snomagic/the\\.e/xxx\<cr>", 'tx')
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
479 call assert_equal(' 2 xxx', getline('.'))
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
480
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
481 call Incsearch_cleanup()
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
482 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
483
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
484 func Test_search_cmdline3g()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
485 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
486
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
487 call Cmdline3_prep()
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
488 1
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
489 call feedkeys(":g/the\<c-l>/d\<cr>", 'tx')
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
490 call assert_equal(' 3 the theother', getline(2))
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
491 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
492 call feedkeys(":global/the\<c-l>/d\<cr>", 'tx')
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
493 call assert_equal(' 3 the theother', getline(2))
14534
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
494 undo
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
495 call feedkeys(":g!/the\<c-l>/d\<cr>", 'tx')
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
496 call assert_equal(1, line('$'))
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
497 call assert_equal(' 2 the~e', getline(1))
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
498 undo
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
499 call feedkeys(":global!/the\<c-l>/d\<cr>", 'tx')
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
500 call assert_equal(1, line('$'))
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
501 call assert_equal(' 2 the~e', getline(1))
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
502
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
503 call Incsearch_cleanup()
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
504 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
505
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
506 func Test_search_cmdline3v()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
507 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
508
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
509 call Cmdline3_prep()
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
510 1
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
511 call feedkeys(":v/the\<c-l>/d\<cr>", 'tx')
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
512 call assert_equal(1, line('$'))
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
513 call assert_equal(' 2 the~e', getline(1))
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
514 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
515 call feedkeys(":vglobal/the\<c-l>/d\<cr>", 'tx')
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
516 call assert_equal(1, line('$'))
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
517 call assert_equal(' 2 the~e', getline(1))
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
518
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
519 call Incsearch_cleanup()
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
520 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
521
11619
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
522 func Test_search_cmdline4()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
523 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
524
11619
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
525 " need to disable char_avail,
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
526 " so that expansion of commandline works
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
527 call test_override("char_avail", 1)
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
528 new
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
529 call setline(1, [' 1 the first', ' 2 the second', ' 3 the third'])
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
530 set incsearch
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
531 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
532 call feedkeys("?the\<c-g>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
533 call assert_equal(' 3 the third', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
534 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
535 call feedkeys("?the\<c-g>\<c-g>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
536 call assert_equal(' 1 the first', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
537 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
538 call feedkeys("?the\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
539 call assert_equal(' 2 the second', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
540 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
541 call feedkeys("?the\<c-t>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
542 call assert_equal(' 1 the first', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
543 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
544 call feedkeys("?the\<c-t>\<c-t>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
545 call assert_equal(' 3 the third', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
546 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
547 call feedkeys("?the\<c-t>\<c-t>\<c-t>\<cr>", 'tx')
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
548 call assert_equal(' 2 the second', getline('.'))
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
549 " clean up
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
550 set noincsearch
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
551 call test_override("char_avail", 0)
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
552 bw!
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
553 endfunc
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
554
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
555 func Test_search_cmdline5()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
556 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
557
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
558 " Do not call test_override("char_avail", 1) so that <C-g> and <C-t> work
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
559 " regardless char_avail.
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
560 new
17411
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
561 call setline(1, [' 1 the first', ' 2 the second', ' 3 the third', ''])
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
562 set incsearch
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
563 1
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
564 call feedkeys("/the\<c-g>\<c-g>\<cr>", 'tx')
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
565 call assert_equal(' 3 the third', getline('.'))
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
566 $
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
567 call feedkeys("?the\<c-t>\<c-t>\<c-t>\<cr>", 'tx')
17411
9c4ddc78df74 patch 8.1.1704: C-R C-W does not work after C-G when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
568 call assert_equal(' 1 the first', getline('.'))
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
569 " clean up
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
570 set noincsearch
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
571 bw!
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
572 endfunc
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
573
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
574 func Test_search_cmdline6()
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
575 " Test that consecutive matches
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
576 " are caught by <c-g>/<c-t>
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
577 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
578
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
579 " need to disable char_avail,
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
580 " so that expansion of commandline works
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
581 call test_override("char_avail", 1)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
582 new
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
583 call setline(1, [' bbvimb', ''])
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
584 set incsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
585 " first match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
586 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
587 call feedkeys("/b\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
588 call assert_equal([0,1,2,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
589 " second match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
590 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
591 call feedkeys("/b\<c-g>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
592 call assert_equal([0,1,3,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
593 " third match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
594 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
595 call feedkeys("/b\<c-g>\<c-g>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
596 call assert_equal([0,1,7,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
597 " first match again
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
598 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
599 call feedkeys("/b\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
600 call assert_equal([0,1,2,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
601 set nowrapscan
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
602 " last match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
603 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
604 call feedkeys("/b\<c-g>\<c-g>\<c-g>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
605 call assert_equal([0,1,7,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
606 " clean up
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
607 set wrapscan&vim
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
608 set noincsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
609 call test_override("char_avail", 0)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
610 bw!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
611 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
612
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
613 func Test_search_cmdline7()
21491
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
614 " Test that pressing <c-g> in an empty command line
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
615 " does not move the cursor
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
616 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
617
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
618 " need to disable char_avail,
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
619 " so that expansion of commandline works
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
620 call test_override("char_avail", 1)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
621 new
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
622 let @/ = 'b'
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
623 call setline(1, [' bbvimb', ''])
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
624 set incsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
625 " first match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
626 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
627 " moves to next match of previous search pattern, just like /<cr>
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
628 call feedkeys("/\<c-g>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
629 call assert_equal([0,1,2,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
630 " moves to next match of previous search pattern, just like /<cr>
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
631 call feedkeys("/\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
632 call assert_equal([0,1,3,0], getpos('.'))
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
633 " moves to next match of previous search pattern, just like /<cr>
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
634 call feedkeys("/\<c-t>\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
635 call assert_equal([0,1,7,0], getpos('.'))
12855
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
636
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
637 " using an offset uses the last search pattern
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
638 call cursor(1, 1)
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
639 call setline(1, ['1 bbvimb', ' 2 bbvimb'])
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
640 let @/ = 'b'
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
641 call feedkeys("//e\<c-g>\<cr>", 'tx')
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
642 call assert_equal('1 bbvimb', getline('.'))
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
643 call assert_equal(4, col('.'))
3c09e451af3a patch 8.0.1304: CTRL-G/CTRL-T don't work with incsearch and empty pattern
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
644
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
645 set noincsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
646 call test_override("char_avail", 0)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
647 bw!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
648 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
649
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
650 func Test_search_cmdline8()
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
651 " Highlighting is cleared in all windows
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
652 " since hls applies to all windows
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
653 CheckOption incsearch
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
654 CheckFeature terminal
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
655 CheckNotGui
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
656 if has("win32")
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
657 throw "Skipped: Bug with sending <ESC> to terminal window not fixed yet"
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
658 endif
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
659
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
660 let h = winheight(0)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
661 if h < 3
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
662 return
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
663 endif
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
664 " Prepare buffer text
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
665 let lines = ['abb vim vim vi', 'vimvivim']
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
666 call writefile(lines, 'Xsearch.txt')
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
667 let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
668
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13790
diff changeset
669 call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])})
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
670
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
671 call term_sendkeys(buf, ":set incsearch hlsearch\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
672 call term_sendkeys(buf, ":14vsp\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
673 call term_sendkeys(buf, "/vim\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
674 call term_sendkeys(buf, "/b\<esc>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
675 call term_sendkeys(buf, "gg0")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
676 call TermWait(buf, 250)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
677 let screen_line = term_scrape(buf, 1)
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
678 let [a0,a1,a2,a3] = [screen_line[3].attr, screen_line[4].attr,
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
679 \ screen_line[18].attr, screen_line[19].attr]
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
680 call assert_notequal(a0, a1)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
681 call assert_notequal(a0, a3)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
682 call assert_notequal(a1, a2)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
683 call assert_equal(a0, a2)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
684 call assert_equal(a1, a3)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
685 " clean up
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
686 call delete('Xsearch.txt')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
687
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
688 bwipe!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
689 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
690
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
691 " Tests for regexp with various magic settings
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
692 func Run_search_regexp_magic_opt()
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
693 put ='1 a aa abb abbccc'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
694 exe 'normal! /a*b\{2}c\+/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
695 call assert_equal([0, 2, 17, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
696
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
697 put ='2 d dd dee deefff'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
698 exe 'normal! /\Md\*e\{2}f\+/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
699 call assert_equal([0, 3, 17, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
700
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
701 set nomagic
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
702 put ='3 g gg ghh ghhiii'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
703 exe 'normal! /g\*h\{2}i\+/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
704 call assert_equal([0, 4, 17, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
705
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
706 put ='4 j jj jkk jkklll'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
707 exe 'normal! /\mj*k\{2}l\+/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
708 call assert_equal([0, 5, 17, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
709
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
710 put ='5 m mm mnn mnnooo'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
711 exe 'normal! /\vm*n{2}o+/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
712 call assert_equal([0, 6, 17, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
713
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
714 put ='6 x ^aa$ x'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
715 exe 'normal! /\V^aa$' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
716 call assert_equal([0, 7, 5, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
717
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
718 set magic
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
719 put ='7 (a)(b) abbaa'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
720 exe 'normal! /\v(a)(b)\2\1\1/e' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
721 call assert_equal([0, 8, 14, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
722
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
723 put ='8 axx [ab]xx'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
724 exe 'normal! /\V[ab]\(\[xy]\)\1' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
725 call assert_equal([0, 9, 7, 0], getpos('.'))
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
726
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
727 %d
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
728 endfunc
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
729
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
730 func Test_search_regexp()
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
731 enew!
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
732
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
733 set regexpengine=1
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
734 call Run_search_regexp_magic_opt()
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
735 set regexpengine=2
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
736 call Run_search_regexp_magic_opt()
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
737 set regexpengine&
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
738
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
739 set undolevels=100
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
740 put ='9 foobar'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
741 put =''
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
742 exe "normal! a\<C-G>u\<Esc>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
743 normal G
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
744 exe 'normal! dv?bar?' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
745 call assert_equal('9 foo', getline('.'))
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
746 call assert_equal([0, 2, 5, 0], getpos('.'))
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
747 call assert_equal(2, line('$'))
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
748 normal u
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
749 call assert_equal('9 foobar', getline('.'))
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
750 call assert_equal([0, 2, 6, 0], getpos('.'))
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
751 call assert_equal(3, line('$'))
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
752
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
753 set undolevels&
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
754 enew!
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
755 endfunc
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
756
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
757 func Test_search_cmdline_incsearch_highlight()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
758 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
759
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
760 set incsearch hlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
761 " need to disable char_avail,
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
762 " so that expansion of commandline works
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
763 call test_override("char_avail", 1)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
764 new
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
765 call setline(1, ['aaa 1 the first', ' 2 the second', ' 3 the third'])
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
766
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
767 1
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
768 call feedkeys("/second\<cr>", 'tx')
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
769 call assert_equal('second', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
770 call assert_equal(' 2 the second', getline('.'))
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
771
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
772 " Canceling search won't change @/
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
773 1
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
774 let @/ = 'last pattern'
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
775 call feedkeys("/third\<C-c>", 'tx')
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
776 call assert_equal('last pattern', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
777 call feedkeys("/third\<Esc>", 'tx')
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
778 call assert_equal('last pattern', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
779 call feedkeys("/3\<bs>\<bs>", 'tx')
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
780 call assert_equal('last pattern', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
781 call feedkeys("/third\<c-g>\<c-t>\<Esc>", 'tx')
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
782 call assert_equal('last pattern', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
783
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
784 " clean up
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
785 set noincsearch nohlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
786 bw!
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
787 endfunc
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
788
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
789 func Test_search_cmdline_incsearch_highlight_attr()
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
790 CheckOption incsearch
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
791 CheckFeature terminal
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
792 CheckNotGui
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
793
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
794 let h = winheight(0)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
795 if h < 3
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
796 return
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
797 endif
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
798
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
799 " Prepare buffer text
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
800 let lines = ['abb vim vim vi', 'vimvivim']
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
801 call writefile(lines, 'Xsearch.txt')
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
802 let buf = term_start([GetVimProg(), '--clean', '-c', 'set noswapfile', 'Xsearch.txt'], {'term_rows': 3})
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
803
13808
16a062cf08c2 patch 8.0.1776: in tests, when WaitFor() fails it doesn't say why
Christian Brabandt <cb@256bit.org>
parents: 13790
diff changeset
804 call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])})
13132
fe0cec169589 patch 8.0.1440: terminal window: some vterm responses are delayed
Christian Brabandt <cb@256bit.org>
parents: 13084
diff changeset
805 " wait for vim to complete initialization
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
806 call TermWait(buf)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
807
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
808 " Get attr of normal(a0), incsearch(a1), hlsearch(a2) highlight
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
809 call term_sendkeys(buf, ":set incsearch hlsearch\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
810 call term_sendkeys(buf, '/b')
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
811 call TermWait(buf, 100)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
812 let screen_line1 = term_scrape(buf, 1)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
813 call assert_true(len(screen_line1) > 2)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
814 " a0: attr_normal
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
815 let a0 = screen_line1[0].attr
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
816 " a1: attr_incsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
817 let a1 = screen_line1[1].attr
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
818 " a2: attr_hlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
819 let a2 = screen_line1[2].attr
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
820 call assert_notequal(a0, a1)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
821 call assert_notequal(a0, a2)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
822 call assert_notequal(a1, a2)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
823 call term_sendkeys(buf, "\<cr>gg0")
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
824
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
825 " Test incremental highlight search
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
826 call term_sendkeys(buf, "/vim")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
827 call TermWait(buf, 100)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
828 " Buffer:
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
829 " abb vim vim vi
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
830 " vimvivim
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
831 " Search: /vim
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
832 let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a2,a2,a2,a0,a0,a0]
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
833 let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
834 call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
835 call assert_equal(attr_line2, map(term_scrape(buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
836
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
837 " Test <C-g>
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
838 call term_sendkeys(buf, "\<C-g>\<C-g>")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
839 call TermWait(buf, 100)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
840 let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
841 let attr_line2 = [a1,a1,a1,a0,a0,a2,a2,a2]
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
842 call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
843 call assert_equal(attr_line2, map(term_scrape(buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
844
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
845 " Test <C-t>
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
846 call term_sendkeys(buf, "\<C-t>")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
847 call TermWait(buf, 100)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
848 let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a1,a1,a1,a0,a0,a0]
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
849 let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
850 call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
851 call assert_equal(attr_line2, map(term_scrape(buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
852
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
853 " Type Enter and a1(incsearch highlight) should become a2(hlsearch highlight)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
854 call term_sendkeys(buf, "\<cr>")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
855 call TermWait(buf, 100)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
856 let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
857 let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
858 call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
859 call assert_equal(attr_line2, map(term_scrape(buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
860
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
861 " Test nohlsearch. a2(hlsearch highlight) should become a0(normal highlight)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
862 call term_sendkeys(buf, ":1\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
863 call term_sendkeys(buf, ":set nohlsearch\<cr>")
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
864 call term_sendkeys(buf, "/vim")
19954
c087099e9163 patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents: 19950
diff changeset
865 call TermWait(buf, 100)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
866 let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a0,a0,a0,a0,a0,a0]
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
867 let attr_line2 = [a0,a0,a0,a0,a0,a0,a0,a0]
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
868 call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
869 call assert_equal(attr_line2, map(term_scrape(buf, 2)[:len(attr_line2)-1], 'v:val.attr'))
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
870 call delete('Xsearch.txt')
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
871
12732
75abce3e933d patch 8.0.1244: search test does not work correctly on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12730
diff changeset
872 call delete('Xsearch.txt')
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
873 bwipe!
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
874 endfunc
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
875
15263
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
876 func Test_incsearch_cmdline_modifier()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
877 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
878
15263
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
879 call test_override("char_avail", 1)
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
880 new
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
881 call setline(1, ['foo'])
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
882 set incsearch
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
883 " Test that error E14 does not occur in parsing command modifier.
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
884 call feedkeys("V:tab", 'tx')
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
885
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
886 call Incsearch_cleanup()
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
887 endfunc
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
888
13790
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
889 func Test_incsearch_scrolling()
20625
116c7bd5e980 patch 8.2.0866: not enough tests for buffer writing
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
890 CheckRunVimInTerminal
13790
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
891 call assert_equal(0, &scrolloff)
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
892 call writefile([
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
893 \ 'let dots = repeat(".", 120)',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
894 \ 'set incsearch cmdheight=2 scrolloff=0',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
895 \ 'call setline(1, [dots, dots, dots, "", "target", dots, dots])',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
896 \ 'normal gg',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
897 \ 'redraw',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
898 \ ], 'Xscript')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
899 let buf = RunVimInTerminal('-S Xscript', {'rows': 9, 'cols': 70})
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
900 " Need to send one key at a time to force a redraw
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
901 call term_sendkeys(buf, '/')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
902 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
903 call term_sendkeys(buf, 't')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
904 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
905 call term_sendkeys(buf, 'a')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
906 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
907 call term_sendkeys(buf, 'r')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
908 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
909 call term_sendkeys(buf, 'g')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
910 call VerifyScreenDump(buf, 'Test_incsearch_scrolling_01', {})
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
911
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
912 call term_sendkeys(buf, "\<Esc>")
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
913 call StopVimInTerminal(buf)
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
914 call delete('Xscript')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
915 endfunc
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
916
14615
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
917 func Test_incsearch_search_dump()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
918 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
919 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
920
14615
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
921 call writefile([
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
922 \ 'set incsearch hlsearch scrolloff=0',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
923 \ 'for n in range(1, 8)',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
924 \ ' call setline(n, "foo " . n)',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
925 \ 'endfor',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
926 \ '3',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
927 \ ], 'Xis_search_script')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
928 let buf = RunVimInTerminal('-S Xis_search_script', {'rows': 9, 'cols': 70})
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
929 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
930 " the 'ambiwidth' check.
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
931 sleep 100m
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
932
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
933 " Need to send one key at a time to force a redraw.
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
934 call term_sendkeys(buf, '/fo')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
935 call VerifyScreenDump(buf, 'Test_incsearch_search_01', {})
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
936 call term_sendkeys(buf, "\<Esc>")
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
937 sleep 100m
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
938
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
939 call term_sendkeys(buf, '/\v')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
940 call VerifyScreenDump(buf, 'Test_incsearch_search_02', {})
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
941 call term_sendkeys(buf, "\<Esc>")
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
942
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
943 call StopVimInTerminal(buf)
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
944 call delete('Xis_search_script')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
945 endfunc
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
946
24000
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
947 func Test_hlsearch_dump()
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
948 CheckOption hlsearch
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
949 CheckScreendump
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
950
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
951 call writefile([
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
952 \ 'set hlsearch cursorline',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
953 \ 'call setline(1, ["xxx", "xxx", "xxx"])',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
954 \ '/.*',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
955 \ '2',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
956 \ ], 'Xhlsearch_script')
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
957 let buf = RunVimInTerminal('-S Xhlsearch_script', {'rows': 6, 'cols': 50})
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
958 call VerifyScreenDump(buf, 'Test_hlsearch_1', {})
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
959
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
960 call term_sendkeys(buf, "/\\_.*\<CR>")
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
961 call VerifyScreenDump(buf, 'Test_hlsearch_2', {})
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
962
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
963 call StopVimInTerminal(buf)
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
964 call delete('Xhlsearch_script')
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
965 endfunc
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
966
24514
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
967 func Test_hlsearch_and_visual()
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
968 CheckOption hlsearch
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
969 CheckScreendump
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
970
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
971 call writefile([
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
972 \ 'set hlsearch',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
973 \ 'call setline(1, repeat(["xxx yyy zzz"], 3))',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
974 \ 'hi Search cterm=bold',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
975 \ '/yyy',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
976 \ 'call cursor(1, 6)',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
977 \ ], 'Xhlvisual_script')
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
978 let buf = RunVimInTerminal('-S Xhlvisual_script', {'rows': 6, 'cols': 40})
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
979 call term_sendkeys(buf, "vjj")
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
980 call VerifyScreenDump(buf, 'Test_hlsearch_visual_1', {})
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
981 call term_sendkeys(buf, "\<Esc>")
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
982
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
983 call StopVimInTerminal(buf)
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
984 call delete('Xhlvisual_script')
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
985 endfunc
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
986
24745
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
987 func Test_hlsearch_block_visual_match()
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
988 CheckScreendump
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
989
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
990 let lines =<< trim END
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
991 set hlsearch
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
992 call setline(1, ['aa', 'bbbb', 'cccccc'])
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
993 END
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
994 call writefile(lines, 'Xhlsearch_block')
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
995 let buf = RunVimInTerminal('-S Xhlsearch_block', {'rows': 9, 'cols': 60})
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
996
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
997 call term_sendkeys(buf, "G\<C-V>$kk\<Esc>")
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
998 sleep 100m
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
999 call term_sendkeys(buf, "/\\%V\<CR>")
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1000 sleep 100m
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1001 call VerifyScreenDump(buf, 'Test_hlsearch_block_visual_match', {})
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1002
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1003 call StopVimInTerminal(buf)
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1004 call delete('Xhlsearch_block')
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1005 endfunc
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1006
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1007 func Test_incsearch_substitute()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1008 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1009
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1010 call test_override("char_avail", 1)
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1011 new
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1012 set incsearch
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1013 for n in range(1, 10)
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1014 call setline(n, 'foo ' . n)
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1015 endfor
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1016 4
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1017 call feedkeys(":.,.+2s/foo\<BS>o\<BS>o/xxx\<cr>", 'tx')
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1018 call assert_equal('foo 3', getline(3))
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1019 call assert_equal('xxx 4', getline(4))
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1020 call assert_equal('xxx 5', getline(5))
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1021 call assert_equal('xxx 6', getline(6))
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1022 call assert_equal('foo 7', getline(7))
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1023
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1024 call Incsearch_cleanup()
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1025 endfunc
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1026
22478
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1027 func Test_incsearch_substitute_long_line()
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1028 new
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1029 call test_override("char_avail", 1)
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1030 set incsearch
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1031
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1032 call repeat('x', 100000)->setline(1)
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1033 call feedkeys(':s/\%c', 'xt')
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1034 redraw
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1035 call feedkeys("\<Esc>", 'xt')
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1036
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1037 call Incsearch_cleanup()
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1038 bwipe!
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1039 endfunc
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1040
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1041 func Test_hlsearch_cursearch()
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1042 CheckScreendump
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1043
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1044 let lines =<< trim END
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1045 set hlsearch scrolloff=0
28562
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1046 call setline(1, ['one', 'foo', 'bar', 'baz', 'foo the foo and foo', 'bar'])
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1047 hi Search ctermbg=yellow
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1048 hi CurSearch ctermbg=blue
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1049 END
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1050 call writefile(lines, 'Xhlsearch_cursearch')
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1051 let buf = RunVimInTerminal('-S Xhlsearch_cursearch', {'rows': 9, 'cols': 60})
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1052
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1053 call term_sendkeys(buf, "gg/foo\<CR>")
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1054 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_1', {})
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1055
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1056 call term_sendkeys(buf, "n")
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1057 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2', {})
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1058
28562
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1059 call term_sendkeys(buf, "n")
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1060 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2a', {})
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1061
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1062 call term_sendkeys(buf, "n")
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1063 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2b', {})
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1064
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1065 call term_sendkeys(buf, ":call setline(5, 'foo')\<CR>")
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1066 call term_sendkeys(buf, "0?\<CR>")
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1067 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_3', {})
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1068
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1069 call term_sendkeys(buf, "gg/foo\\nbar\<CR>")
28469
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1070 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_multiple_line_1', {})
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1071
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1072 call term_sendkeys(buf, ":call setline(1, ['---', 'abcdefg', 'hijkl', '---', 'abcdefg', 'hijkl'])\<CR>")
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1073 call term_sendkeys(buf, "gg/efg\\nhij\<CR>")
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1074 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_multiple_line_2', {})
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1075 call term_sendkeys(buf, "h\<C-L>")
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1076 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_multiple_line_3', {})
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1077 call term_sendkeys(buf, "j\<C-L>")
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1078 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_multiple_line_4', {})
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1079 call term_sendkeys(buf, "h\<C-L>")
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1080 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_multiple_line_5', {})
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1081
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1082 call StopVimInTerminal(buf)
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1083 call delete('Xhlsearch_cursearch')
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1084 endfunc
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1085
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1086 " Similar to Test_incsearch_substitute() but with a screendump halfway.
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1087 func Test_incsearch_substitute_dump()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1088 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1089 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1090
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1091 call writefile([
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1092 \ 'set incsearch hlsearch scrolloff=0',
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1093 \ 'for n in range(1, 10)',
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1094 \ ' call setline(n, "foo " . n)',
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1095 \ 'endfor',
14542
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1096 \ 'call setline(11, "bar 11")',
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1097 \ '3',
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1098 \ ], 'Xis_subst_script')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1099 let buf = RunVimInTerminal('-S Xis_subst_script', {'rows': 9, 'cols': 70})
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1100 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1101 " the 'ambiwidth' check.
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1102 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1103
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1104 " Need to send one key at a time to force a redraw.
14528
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1105 " Select three lines at the cursor with typed pattern.
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1106 call term_sendkeys(buf, ':.,.+2s/')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1107 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1108 call term_sendkeys(buf, 'f')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1109 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1110 call term_sendkeys(buf, 'o')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1111 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1112 call term_sendkeys(buf, 'o')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1113 call VerifyScreenDump(buf, 'Test_incsearch_substitute_01', {})
14528
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1114 call term_sendkeys(buf, "\<Esc>")
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1115
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1116 " Select three lines at the cursor using previous pattern.
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1117 call term_sendkeys(buf, "/foo\<CR>")
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1118 sleep 100m
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1119 call term_sendkeys(buf, ':.,.+2s//')
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1120 call VerifyScreenDump(buf, 'Test_incsearch_substitute_02', {})
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1121
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1122 " Deleting last slash should remove the match.
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1123 call term_sendkeys(buf, "\<BS>")
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1124 call VerifyScreenDump(buf, 'Test_incsearch_substitute_03', {})
14530
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1125 call term_sendkeys(buf, "\<Esc>")
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1126
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1127 " Reverse range is accepted
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1128 call term_sendkeys(buf, ':5,2s/foo')
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1129 call VerifyScreenDump(buf, 'Test_incsearch_substitute_04', {})
14532
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1130 call term_sendkeys(buf, "\<Esc>")
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1131
14532
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1132 " White space after the command is skipped
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1133 call term_sendkeys(buf, ':2,3sub /fo')
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1134 call VerifyScreenDump(buf, 'Test_incsearch_substitute_05', {})
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1135 call term_sendkeys(buf, "\<Esc>")
14532
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1136
14538
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1137 " Command modifiers are skipped
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1138 call term_sendkeys(buf, ':above below browse botr confirm keepmar keepalt keeppat keepjum filter xxx hide lockm leftabove noau noswap rightbel sandbox silent silent! $tab top unsil vert verbose 4,5s/fo.')
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1139 call VerifyScreenDump(buf, 'Test_incsearch_substitute_06', {})
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1140 call term_sendkeys(buf, "\<Esc>")
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1141
14542
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1142 " Cursorline highlighting at match
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1143 call term_sendkeys(buf, ":set cursorline\<CR>")
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1144 call term_sendkeys(buf, 'G9G')
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1145 call term_sendkeys(buf, ':9,11s/bar')
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1146 call VerifyScreenDump(buf, 'Test_incsearch_substitute_07', {})
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1147 call term_sendkeys(buf, "\<Esc>")
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1148
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1149 " Cursorline highlighting at cursor when no match
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1150 call term_sendkeys(buf, ':9,10s/bar')
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1151 call VerifyScreenDump(buf, 'Test_incsearch_substitute_08', {})
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1152 call term_sendkeys(buf, "\<Esc>")
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1153
14613
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1154 " Only \v handled as empty pattern, does not move cursor
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1155 call term_sendkeys(buf, '3G4G')
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1156 call term_sendkeys(buf, ":nohlsearch\<CR>")
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1157 call term_sendkeys(buf, ':6,7s/\v')
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1158 call VerifyScreenDump(buf, 'Test_incsearch_substitute_09', {})
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1159 call term_sendkeys(buf, "\<Esc>")
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1160
14652
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1161 call term_sendkeys(buf, ":set nocursorline\<CR>")
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1162
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1163 " All matches are highlighted for 'hlsearch' after the incsearch canceled
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1164 call term_sendkeys(buf, "1G*")
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1165 call term_sendkeys(buf, ":2,5s/foo")
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1166 sleep 100m
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1167 call term_sendkeys(buf, "\<Esc>")
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1168 call VerifyScreenDump(buf, 'Test_incsearch_substitute_10', {})
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1169
14774
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1170 call term_sendkeys(buf, ":split\<CR>")
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1171 call term_sendkeys(buf, ":let @/ = 'xyz'\<CR>")
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1172 call term_sendkeys(buf, ":%s/.")
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1173 call VerifyScreenDump(buf, 'Test_incsearch_substitute_11', {})
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1174 call term_sendkeys(buf, "\<BS>")
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1175 call VerifyScreenDump(buf, 'Test_incsearch_substitute_12', {})
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1176 call term_sendkeys(buf, "\<Esc>")
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1177 call VerifyScreenDump(buf, 'Test_incsearch_substitute_13', {})
18693
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1178 call term_sendkeys(buf, ":%bwipe!\<CR>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1179 call term_sendkeys(buf, ":only!\<CR>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1180
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1181 " get :'<,'>s command in history
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1182 call term_sendkeys(buf, ":set cmdheight=2\<CR>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1183 call term_sendkeys(buf, "aasdfasdf\<Esc>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1184 call term_sendkeys(buf, "V:s/a/b/g\<CR>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1185 " Using '<,'> does not give E20
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1186 call term_sendkeys(buf, ":new\<CR>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1187 call term_sendkeys(buf, "aasdfasdf\<Esc>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1188 call term_sendkeys(buf, ":\<Up>\<Up>")
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1189 call VerifyScreenDump(buf, 'Test_incsearch_substitute_14', {})
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1190 call term_sendkeys(buf, "<Esc>")
14774
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1191
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1192 call StopVimInTerminal(buf)
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1193 call delete('Xis_subst_script')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1194 endfunc
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1195
19475
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1196 func Test_incsearch_highlighting()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1197 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1198 CheckScreendump
19475
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1199
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1200 call writefile([
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1201 \ 'set incsearch hlsearch',
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1202 \ 'call setline(1, "hello/there")',
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1203 \ ], 'Xis_subst_hl_script')
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1204 let buf = RunVimInTerminal('-S Xis_subst_hl_script', {'rows': 4, 'cols': 20})
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1205 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1206 " the 'ambiwidth' check.
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1207 sleep 300m
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1208
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1209 " Using a different search delimiter should still highlight matches
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1210 " that contain a '/'.
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1211 call term_sendkeys(buf, ":%s;ello/the")
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1212 call VerifyScreenDump(buf, 'Test_incsearch_substitute_15', {})
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1213 call term_sendkeys(buf, "<Esc>")
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1214
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1215 call StopVimInTerminal(buf)
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1216 call delete('Xis_subst_hl_script')
19475
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1217 endfunc
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1218
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1219 func Test_incsearch_with_change()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1220 CheckFeature timers
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1221 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1222 CheckScreendump
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1223
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1224 call writefile([
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1225 \ 'set incsearch hlsearch scrolloff=0',
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1226 \ 'call setline(1, ["one", "two ------ X", "three"])',
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1227 \ 'call timer_start(200, { _ -> setline(2, "x")})',
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1228 \ ], 'Xis_change_script')
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1229 let buf = RunVimInTerminal('-S Xis_change_script', {'rows': 9, 'cols': 70})
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1230 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1231 " the 'ambiwidth' check.
15918
22b51b13634d patch 8.1.0965: search test fails
Bram Moolenaar <Bram@vim.org>
parents: 15914
diff changeset
1232 sleep 300m
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1233
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1234 " Highlight X, it will be deleted by the timer callback.
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1235 call term_sendkeys(buf, ':%s/X')
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1236 call VerifyScreenDump(buf, 'Test_incsearch_change_01', {})
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1237 call term_sendkeys(buf, "\<Esc>")
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1238
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1239 call StopVimInTerminal(buf)
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1240 call delete('Xis_change_script')
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1241 endfunc
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1242
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1243 " Similar to Test_incsearch_substitute_dump() for :sort
14615
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
1244 func Test_incsearch_sort_dump()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1245 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1246 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1247
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1248 call writefile([
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1249 \ 'set incsearch hlsearch scrolloff=0',
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1250 \ 'call setline(1, ["another one 2", "that one 3", "the one 1"])',
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1251 \ ], 'Xis_sort_script')
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1252 let buf = RunVimInTerminal('-S Xis_sort_script', {'rows': 9, 'cols': 70})
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1253 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1254 " the 'ambiwidth' check.
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1255 sleep 100m
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1256
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1257 call term_sendkeys(buf, ':sort ni u /on')
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1258 call VerifyScreenDump(buf, 'Test_incsearch_sort_01', {})
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1259 call term_sendkeys(buf, "\<Esc>")
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1260
20164
2dd1ac2c48f4 patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
1261 call term_sendkeys(buf, ':sort! /on')
2dd1ac2c48f4 patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
1262 call VerifyScreenDump(buf, 'Test_incsearch_sort_02', {})
2dd1ac2c48f4 patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
1263 call term_sendkeys(buf, "\<Esc>")
2dd1ac2c48f4 patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
1264
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1265 call StopVimInTerminal(buf)
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1266 call delete('Xis_sort_script')
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1267 endfunc
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1268
14563
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1269 " Similar to Test_incsearch_substitute_dump() for :vimgrep famiry
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1270 func Test_incsearch_vimgrep_dump()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1271 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1272 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1273
14563
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1274 call writefile([
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1275 \ 'set incsearch hlsearch scrolloff=0',
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1276 \ 'call setline(1, ["another one 2", "that one 3", "the one 1"])',
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1277 \ ], 'Xis_vimgrep_script')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1278 let buf = RunVimInTerminal('-S Xis_vimgrep_script', {'rows': 9, 'cols': 70})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1279 " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1280 " the 'ambiwidth' check.
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1281 sleep 100m
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1282
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1283 " Need to send one key at a time to force a redraw.
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1284 call term_sendkeys(buf, ':vimgrep on')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1285 call VerifyScreenDump(buf, 'Test_incsearch_vimgrep_01', {})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1286 call term_sendkeys(buf, "\<Esc>")
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1287
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1288 call term_sendkeys(buf, ':vimg /on/ *.txt')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1289 call VerifyScreenDump(buf, 'Test_incsearch_vimgrep_02', {})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1290 call term_sendkeys(buf, "\<Esc>")
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1291
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1292 call term_sendkeys(buf, ':vimgrepadd "\<on')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1293 call VerifyScreenDump(buf, 'Test_incsearch_vimgrep_03', {})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1294 call term_sendkeys(buf, "\<Esc>")
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1295
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1296 call term_sendkeys(buf, ':lv "tha')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1297 call VerifyScreenDump(buf, 'Test_incsearch_vimgrep_04', {})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1298 call term_sendkeys(buf, "\<Esc>")
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1299
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1300 call term_sendkeys(buf, ':lvimgrepa "the" **/*.txt')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1301 call VerifyScreenDump(buf, 'Test_incsearch_vimgrep_05', {})
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1302 call term_sendkeys(buf, "\<Esc>")
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1303
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1304 call StopVimInTerminal(buf)
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1305 call delete('Xis_vimgrep_script')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1306 endfunc
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1307
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1308 func Test_keep_last_search_pattern()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1309 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1310
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1311 new
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1312 call setline(1, ['foo', 'foo', 'foo'])
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1313 set incsearch
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1314 call test_override("char_avail", 1)
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1315 let @/ = 'bar'
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1316 call feedkeys(":/foo/s//\<Esc>", 'ntx')
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1317 call assert_equal('bar', @/)
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1318
14760
fd69edd2c67e patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Christian Brabandt <cb@256bit.org>
parents: 14687
diff changeset
1319 " no error message if pattern not found
fd69edd2c67e patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Christian Brabandt <cb@256bit.org>
parents: 14687
diff changeset
1320 call feedkeys(":/xyz/s//\<Esc>", 'ntx')
fd69edd2c67e patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Christian Brabandt <cb@256bit.org>
parents: 14687
diff changeset
1321 call assert_equal('bar', @/)
fd69edd2c67e patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Christian Brabandt <cb@256bit.org>
parents: 14687
diff changeset
1322
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1323 bwipe!
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1324 call test_override("ALL", 0)
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1325 set noincsearch
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1326 endfunc
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1327
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1328 func Test_word_under_cursor_after_match()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1329 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1330
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1331 new
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1332 call setline(1, 'foo bar')
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1333 set incsearch
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1334 call test_override("char_avail", 1)
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1335 try
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1336 call feedkeys("/foo\<C-R>\<C-W>\<CR>", 'ntx')
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1337 catch /E486:/
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1338 endtry
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1339 call assert_equal('foobar', @/)
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1340
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1341 bwipe!
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1342 call test_override("ALL", 0)
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1343 set noincsearch
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1344 endfunc
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1345
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1346 func Test_subst_word_under_cursor()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1347 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1348
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1349 new
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1350 call setline(1, ['int SomeLongName;', 'for (xxx = 1; xxx < len; ++xxx)'])
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1351 set incsearch
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1352 call test_override("char_avail", 1)
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1353 call feedkeys("/LongName\<CR>", 'ntx')
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1354 call feedkeys(":%s/xxx/\<C-R>\<C-W>/g\<CR>", 'ntx')
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1355 call assert_equal('for (SomeLongName = 1; SomeLongName < len; ++SomeLongName)', getline(2))
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1356
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1357 bwipe!
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1358 call test_override("ALL", 0)
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1359 set noincsearch
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1360 endfunc
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1361
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1362 func Test_search_undefined_behaviour()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1363 CheckFeature terminal
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1364
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1365 let h = winheight(0)
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1366 if h < 3
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1367 return
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1368 endif
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1369 " did cause an undefined left shift
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1370 let g:buf = term_start([GetVimProg(), '--clean', '-e', '-s', '-c', 'call search(getline("."))', 'samples/test000'], {'term_rows': 3})
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1371 call assert_equal([''], getline(1, '$'))
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1372 call term_sendkeys(g:buf, ":qa!\<cr>")
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1373 bwipe!
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1374 endfunc
12759
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1375
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1376 func Test_search_undefined_behaviour2()
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1377 call search("\%UC0000000")
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1378 endfunc
12788
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1379
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1380 " Test for search('multi-byte char', 'bce')
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1381 func Test_search_multibyte()
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1382 let save_enc = &encoding
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1383 set encoding=utf8
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1384 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1385 call append('$', 'A')
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1386 call cursor(2, 1)
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1387 call assert_equal(2, search('A', 'bce', line('.')))
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1388 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1389 let &encoding = save_enc
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1390 endfunc
13043
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1391
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1392 " This was causing E874. Also causes an invalid read?
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1393 func Test_look_behind()
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1394 new
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
1395 call setline(1, '0\|\&\n\@<=')
13043
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1396 call search(getline("."))
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1397 bwipe!
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1398 endfunc
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1399
24693
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1400 func Test_search_visual_area_linewise()
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1401 new
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1402 call setline(1, ['aa', 'bb', 'cc'])
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1403 exe "normal 2GV\<Esc>"
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1404 for engine in [1, 2]
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1405 exe 'set regexpengine=' .. engine
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1406 exe "normal gg/\\%'<\<CR>>"
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1407 call assert_equal([0, 2, 1, 0, 1], getcurpos(), 'engine ' .. engine)
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1408 exe "normal gg/\\%'>\<CR>"
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1409 call assert_equal([0, 2, 2, 0, 2], getcurpos(), 'engine ' .. engine)
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1410 endfor
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1411
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1412 bwipe!
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1413 set regexpengine&
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1414 endfunc
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1415
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1416 func Test_search_sentence()
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1417 new
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1418 " this used to cause a crash
13084
25ab78f14c8b patch 8.0.1417: test doesn't search for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13082
diff changeset
1419 /\%'(
25ab78f14c8b patch 8.0.1417: test doesn't search for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13082
diff changeset
1420 /
24693
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1421 bwipe
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1422 endfunc
15089
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1423
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1424 " Test that there is no crash when there is a last search pattern but no last
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1425 " substitute pattern.
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1426 func Test_no_last_substitute_pat()
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1427 " Use viminfo to set the last search pattern to a string and make the last
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1428 " substitute pattern the most recent used and make it empty (NULL).
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1429 call writefile(['~MSle0/bar', '~MSle0~&'], 'Xviminfo')
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1430 rviminfo! Xviminfo
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1431 call assert_fails('normal n', 'E35:')
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1432
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1433 call delete('Xviminfo')
e428882d6ffb patch 8.1.0555: crash when last search pat is set but not last substitute pat
Bram Moolenaar <Bram@vim.org>
parents: 14774
diff changeset
1434 endfunc
15148
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1435
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1436 func Test_search_Ctrl_L_combining()
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1437 " Make sure, that Ctrl-L works correctly with combining characters.
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1438 " It uses an artificial example of an 'a' with 4 combining chars:
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
1439 " 'a' U+0061 Dec:97 LATIN SMALL LETTER A &#x61; /\%u61\Z "\u0061"
15148
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1440 " ' ̀' U+0300 Dec:768 COMBINING GRAVE ACCENT &#x300; /\%u300\Z "\u0300"
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1441 " ' ́' U+0301 Dec:769 COMBINING ACUTE ACCENT &#x301; /\%u301\Z "\u0301"
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1442 " ' ̇' U+0307 Dec:775 COMBINING DOT ABOVE &#x307; /\%u307\Z "\u0307"
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
1443 " ' ̣' U+0323 Dec:803 COMBINING DOT BELOW &#x323; /\%u323 "\u0323"
15148
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1444 " Those should also appear on the commandline
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1445 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1446
15148
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1447 call Cmdline3_prep()
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1448 1
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1449 let bufcontent = ['', 'Miạ̀́̇m']
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1450 call append('$', bufcontent)
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1451 call feedkeys("/Mi\<c-l>\<c-l>\<cr>", 'tx')
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1452 call assert_equal(5, line('.'))
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1453 call assert_equal(bufcontent[1], @/)
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1454 call Incsearch_cleanup()
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1455 endfunc
15924
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1456
15959
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1457 func Test_large_hex_chars1()
15924
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1458 " This used to cause a crash, the character becomes an NFA state.
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1459 try
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1460 /\%Ufffffc23
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1461 catch
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1462 call assert_match('E678:', v:exception)
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1463 endtry
15959
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1464 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1465 set re=1
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1466 /\%Ufffffc23
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1467 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1468 call assert_match('E678:', v:exception)
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1469 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1470 set re&
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1471 endfunc
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1472
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1473 func Test_large_hex_chars2()
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1474 " This used to cause a crash, the character becomes an NFA state.
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1475 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1476 /[\Ufffffc1f]
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1477 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1478 call assert_match('E486:', v:exception)
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1479 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1480 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1481 set re=1
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1482 /[\Ufffffc1f]
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1483 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1484 call assert_match('E486:', v:exception)
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1485 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1486 set re&
15924
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1487 endfunc
15935
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1488
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1489 func Test_one_error_msg()
19973
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1490 " This was also giving an internal error
15935
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1491 call assert_fails('call search(" \\((\\v[[=P=]]){185}+ ")', 'E871:')
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1492 endfunc
16287
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1493
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1494 func Test_incsearch_add_char_under_cursor()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1495 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1496
16287
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1497 set incsearch
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1498 new
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1499 call setline(1, ['find match', 'anything'])
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1500 1
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1501 call test_override('char_avail', 1)
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1502 call feedkeys("fc/m\<C-L>\<C-L>\<C-L>\<C-L>\<C-L>\<CR>", 'tx')
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1503 call assert_equal('match', @/)
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1504 call test_override('char_avail', 0)
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1505
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1506 set incsearch&
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1507 bwipe!
a6cffc232b9d patch 8.1.1148: CTRL-L with 'incsearch' does not pick up char under cursor
Bram Moolenaar <Bram@vim.org>
parents: 15959
diff changeset
1508 endfunc
16419
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1509
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1510 " Test for the search() function with match at the cursor position
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1511 func Test_search_match_at_curpos()
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1512 new
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1513 call append(0, ['foobar', '', 'one two', ''])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1514
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1515 normal gg
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1516
17994
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1517 eval 'foobar'->search('c')
16419
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1518 call assert_equal([1, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1519
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1520 normal j
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1521 call search('^$', 'c')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1522 call assert_equal([2, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1523
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1524 call search('^$', 'bc')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1525 call assert_equal([2, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1526
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1527 exe "normal /two\<CR>"
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1528 call search('.', 'c')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1529 call assert_equal([3, 5], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1530
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1531 close!
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1532 endfunc
16949
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1533
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1534 " Test for error cases with the search() function
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1535 func Test_search_errors()
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1536 call assert_fails("call search('pat', [])", 'E730:')
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1537 call assert_fails("call search('pat', 'b', {})", 'E728:')
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1538 call assert_fails("call search('pat', 'b', 1, [])", 'E745:')
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1539 call assert_fails("call search('pat', 'ns')", 'E475:')
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1540 call assert_fails("call search('pat', 'mr')", 'E475:')
19973
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1541
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1542 new
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1543 call setline(1, ['foo', 'bar'])
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1544 call assert_fails('call feedkeys("/foo/;/bar/;\<CR>", "tx")', 'E386:')
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1545 bwipe!
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1546 endfunc
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1547
16949
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1548 func Test_search_display_pattern()
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1549 new
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1550 call setline(1, ['foo', 'bar', 'foobar'])
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1551
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1552 call cursor(1, 1)
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1553 let @/ = 'foo'
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
1554 let pat = @/->escape('()*?'. '\s\+')
16949
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1555 let g:a = execute(':unsilent :norm! n')
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1556 call assert_match(pat, g:a)
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1557
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1558 " right-left
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1559 if exists("+rightleft")
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1560 set rl
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1561 call cursor(1, 1)
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1562 let @/ = 'foo'
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1563 let pat = 'oof/\s\+'
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1564 let g:a = execute(':unsilent :norm! n')
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1565 call assert_match(pat, g:a)
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1566 set norl
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1567 endif
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1568 endfunc
17994
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1569
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1570 func Test_searchdecl()
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1571 let lines =<< trim END
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1572 int global;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1573
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1574 func()
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1575 {
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1576 int global;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1577 if (cond) {
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1578 int local;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1579 }
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1580 int local;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1581 // comment
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1582 }
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1583 END
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1584 new
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1585 call setline(1, lines)
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1586 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1587 call assert_equal(0, searchdecl('local', 0, 0))
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1588 call assert_equal(7, getcurpos()[1])
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1589
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1590 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1591 call assert_equal(0, 'local'->searchdecl(0, 1))
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1592 call assert_equal(9, getcurpos()[1])
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1593
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1594 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1595 call assert_equal(0, searchdecl('global'))
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1596 call assert_equal(5, getcurpos()[1])
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1597
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1598 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1599 call assert_equal(0, searchdecl('global', 1))
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1600 call assert_equal(1, getcurpos()[1])
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1601
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1602 bwipe!
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1603 endfunc
19147
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1604
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1605 func Test_search_special()
19151
f12eda320c78 patch 8.2.0135: bracketed paste can still cause invalid memory access
Bram Moolenaar <Bram@vim.org>
parents: 19147
diff changeset
1606 " this was causing illegal memory access and an endless loop
f12eda320c78 patch 8.2.0135: bracketed paste can still cause invalid memory access
Bram Moolenaar <Bram@vim.org>
parents: 19147
diff changeset
1607 set t_PE=
19147
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1608 exe "norm /\x80PS"
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1609 endfunc
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1610
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1611 " Test for command failures when the last search pattern is not set.
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1612 " Need to run this in a new vim instance where last search pattern is not set.
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1613 func Test_search_with_no_last_pat()
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1614 let lines =<< trim [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1615 call assert_fails("normal i\<C-R>/\e", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1616 call assert_fails("exe '/'", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1617 call assert_fails("exe '?'", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1618 call assert_fails("/", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1619 call assert_fails("?", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1620 call assert_fails("normal n", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1621 call assert_fails("normal N", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1622 call assert_fails("normal gn", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1623 call assert_fails("normal gN", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1624 call assert_fails("normal cgn", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1625 call assert_fails("normal cgN", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1626 let p = []
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1627 let p = @/
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1628 call assert_equal('', p)
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1629 call assert_fails("normal :\<C-R>/", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1630 call assert_fails("//p", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1631 call assert_fails(";//p", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1632 call assert_fails("??p", 'E35:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1633 call assert_fails(";??p", 'E35:')
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 20739
diff changeset
1634 call assert_fails('g//p', ['E35:', 'E476:'])
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 20739
diff changeset
1635 call assert_fails('v//p', ['E35:', 'E476:'])
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1636 call writefile(v:errors, 'Xresult')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1637 qall!
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1638 [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1639 call writefile(lines, 'Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1640
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1641 if RunVim([], [], '--clean -S Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1642 call assert_equal([], readfile('Xresult'))
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1643 endif
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1644 call delete('Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1645 call delete('Xresult')
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1646 endfunc
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1647
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1648 " Test for using tilde (~) atom in search. This should use the last used
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1649 " substitute pattern
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1650 func Test_search_tilde_pat()
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1651 let lines =<< trim [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1652 set regexpengine=1
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1653 call assert_fails('exe "normal /~\<CR>"', 'E33:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1654 call assert_fails('exe "normal ?~\<CR>"', 'E33:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1655 set regexpengine=2
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 20739
diff changeset
1656 call assert_fails('exe "normal /~\<CR>"', ['E33:', 'E383:'])
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 20739
diff changeset
1657 call assert_fails('exe "normal ?~\<CR>"', ['E33:', 'E383:'])
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1658 set regexpengine&
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1659 call writefile(v:errors, 'Xresult')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1660 qall!
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1661 [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1662 call writefile(lines, 'Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1663 if RunVim([], [], '--clean -S Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1664 call assert_equal([], readfile('Xresult'))
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1665 endif
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1666 call delete('Xscript')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1667 call delete('Xresult')
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1668 endfunc
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1669
19435
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1670 " Test for searching a pattern that is not present with 'nowrapscan'
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1671 func Test_search_pat_not_found()
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1672 new
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1673 set nowrapscan
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1674 let @/ = '1abcxyz2'
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1675 call assert_fails('normal n', 'E385:')
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1676 call assert_fails('normal N', 'E384:')
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1677 set wrapscan&
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1678 close
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1679 endfunc
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1680
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1681 " Test for v:searchforward variable
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1682 func Test_searchforward_var()
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1683 new
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1684 call setline(1, ['foo', '', 'foo'])
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1685 call cursor(2, 1)
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1686 let @/ = 'foo'
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1687 let v:searchforward = 0
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1688 normal N
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1689 call assert_equal(3, line('.'))
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1690 call cursor(2, 1)
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1691 let v:searchforward = 1
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1692 normal N
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1693 call assert_equal(1, line('.'))
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1694 close!
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1695 endfunc
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1696
19950
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1697 " Test for invalid regular expressions
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1698 func Test_invalid_regexp()
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1699 set regexpengine=1
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1700 call assert_fails("call search(repeat('\\(.\\)', 10))", 'E51:')
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1701 call assert_fails("call search('\\%(')", 'E53:')
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1702 call assert_fails("call search('\\(')", 'E54:')
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1703 call assert_fails("call search('\\)')", 'E55:')
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1704 call assert_fails("call search('x\\@#')", 'E59:')
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1705 call assert_fails('call search(''\v%(%(%(%(%(%(%(%(%(%(%(a){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}){1}'')', 'E60:')
19950
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1706 call assert_fails("call search('a\\+*')", 'E61:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1707 call assert_fails("call search('\\_m')", 'E63:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1708 call assert_fails("call search('\\+')", 'E64:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1709 call assert_fails("call search('\\1')", 'E65:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1710 call assert_fails("call search('\\z\\(\\)')", 'E66:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1711 call assert_fails("call search('\\z2')", 'E67:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1712 call assert_fails("call search('\\zx')", 'E68:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1713 call assert_fails("call search('\\%[ab')", 'E69:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1714 call assert_fails("call search('\\%[]')", 'E70:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1715 call assert_fails("call search('\\%a')", 'E71:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1716 call assert_fails("call search('ab\\%[\\(cd\\)]')", 'E369:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1717 call assert_fails("call search('ab\\%[\\%(cd\\)]')", 'E369:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1718 set regexpengine=2
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1719 call assert_fails("call search('\\_')", 'E865:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1720 call assert_fails("call search('\\+')", 'E866:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1721 call assert_fails("call search('\\zx')", 'E867:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1722 call assert_fails("call search('\\%a')", 'E867:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1723 call assert_fails("call search('x\\@#')", 'E869:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1724 call assert_fails("call search(repeat('\\(.\\)', 10))", 'E872:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1725 call assert_fails("call search('\\_m')", 'E877:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1726 call assert_fails("call search('\\%(')", 'E53:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1727 call assert_fails("call search('\\(')", 'E54:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1728 call assert_fails("call search('\\)')", 'E55:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1729 call assert_fails("call search('\\z\\(\\)')", 'E66:')
26907
6f43253463cc patch 8.2.3982: some lines of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 25911
diff changeset
1730 call assert_fails("call search('\\z2')", 'E67:')
6f43253463cc patch 8.2.3982: some lines of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 25911
diff changeset
1731 call assert_fails("call search('\\zx')", 'E867:')
19950
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1732 call assert_fails("call search('\\%[ab')", 'E69:')
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
1733 call assert_fails("call search('\\%[]')", 'E70:')
19950
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1734 call assert_fails("call search('\\%9999999999999999999999999999v')", 'E951:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1735 set regexpengine&
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1736 call assert_fails("call search('\\%#=3ab')", 'E864:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1737 endfunc
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1738
19969
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1739 " Test for searching a very complex pattern in a string. Should switch the
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1740 " regexp engine from NFA to the old engine.
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1741 func Test_regexp_switch_engine()
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1742 let l = readfile('samples/re.freeze.txt')
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1743 let v = substitute(l[4], '..\@<!', '', '')
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1744 call assert_equal(l[4], v)
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1745 endfunc
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1746
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1747 " Test for the \%V atom to search within visually selected text
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1748 func Test_search_in_visual_area()
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1749 new
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1750 call setline(1, ['foo bar1', 'foo bar2', 'foo bar3', 'foo bar4'])
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1751 exe "normal 2GVjo/\\%Vbar\<CR>\<Esc>"
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1752 call assert_equal([2, 5], [line('.'), col('.')])
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1753 exe "normal 2GVj$?\\%Vbar\<CR>\<Esc>"
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1754 call assert_equal([3, 5], [line('.'), col('.')])
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1755 close!
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1756 endfunc
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1757
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1758 " Test for searching with 'smartcase' and 'ignorecase'
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1759 func Test_search_smartcase()
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1760 new
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1761 call setline(1, ['', 'Hello'])
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1762 set noignorecase nosmartcase
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1763 call assert_fails('exe "normal /\\a\\_.\\(.*\\)O\<CR>"', 'E486:')
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1764
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1765 set ignorecase nosmartcase
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1766 exe "normal /\\a\\_.\\(.*\\)O\<CR>"
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1767 call assert_equal([2, 1], [line('.'), col('.')])
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1768
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1769 call cursor(1, 1)
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1770 set ignorecase smartcase
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1771 call assert_fails('exe "normal /\\a\\_.\\(.*\\)O\<CR>"', 'E486:')
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1772
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1773 exe "normal /\\a\\_.\\(.*\\)o\<CR>"
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1774 call assert_equal([2, 1], [line('.'), col('.')])
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1775
20199
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1776 " Test for using special atoms with 'smartcase'
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1777 call setline(1, ['', ' Hello\ '])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1778 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1779 call feedkeys('/\_.\%(\uello\)\' .. "\<CR>", 'xt')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1780 call assert_equal([2, 4], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1781
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1782 set ignorecase& smartcase&
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1783 close!
21491
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1784 endfun
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1785
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1786 " Test 'smartcase' with utf-8.
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1787 func Test_search_smartcase_utf8()
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1788 new
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1789 let save_enc = &encoding
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1790 set encoding=utf8 ignorecase smartcase
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1791
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1792 call setline(1, 'Café cafÉ')
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1793 1s/café/x/g
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1794 call assert_equal('x x', getline(1))
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1795
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1796 call setline(1, 'Café cafÉ')
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1797 1s/cafÉ/x/g
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1798 call assert_equal('Café x', getline(1))
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1799
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1800 set ignorecase& smartcase&
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1801 let &encoding = save_enc
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1802 close!
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1803 endfunc
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1804
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1805 " Test searching past the end of a file
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1806 func Test_search_past_eof()
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1807 new
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1808 call setline(1, ['Line'])
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1809 exe "normal /\\n\\zs\<CR>"
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1810 call assert_equal([1, 4], [line('.'), col('.')])
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1811 close!
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1812 endfunc
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1813
20199
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1814 " Test for various search offsets
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1815 func Test_search_offset()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1816 " With /e, for a match in the first column of a line, the cursor should be
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1817 " placed at the end of the previous line.
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1818 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1819 call setline(1, ['one two', 'three four'])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1820 call search('two\_.', 'e')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1821 call assert_equal([1, 7], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1822
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1823 " with cursor at the beginning of the file, use /s+1
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1824 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1825 exe "normal /two/s+1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1826 call assert_equal([1, 6], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1827
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1828 " with cursor at the end of the file, use /e-1
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1829 call cursor(2, 10)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1830 exe "normal ?three?e-1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1831 call assert_equal([2, 4], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1832
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1833 " line offset - after the last line
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1834 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1835 exe "normal /three/+1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1836 call assert_equal([2, 1], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1837
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1838 " line offset - before the first line
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1839 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1840 exe "normal ?one?-1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1841 call assert_equal([1, 1], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1842
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1843 " character offset - before the first character in the file
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1844 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1845 exe "normal ?one?s-1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1846 call assert_equal([1, 1], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1847 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1848 exe "normal ?one?e-3\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1849 call assert_equal([1, 1], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1850
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1851 " character offset - after the last character in the file
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1852 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1853 exe "normal /four/s+4\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1854 call assert_equal([2, 10], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1855 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1856 exe "normal /four/e+1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1857 call assert_equal([2, 10], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1858
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1859 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1860 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1861
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1862 " Test for searching for matching parenthesis using %
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1863 func Test_search_match_paren()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1864 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1865 call setline(1, "abc(def')'ghi'('jk'\\t'lm)no")
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1866 " searching for a matching parenthesis should skip single quoted characters
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1867 call cursor(1, 4)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1868 normal %
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1869 call assert_equal([1, 25], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1870 normal %
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1871 call assert_equal([1, 4], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1872 call cursor(1, 5)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1873 normal ])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1874 call assert_equal([1, 25], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1875 call cursor(1, 24)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1876 normal [(
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1877 call assert_equal([1, 4], [line('.'), col('.')])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1878
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1879 " matching parenthesis in 'virtualedit' mode with cursor after the eol
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1880 call setline(1, 'abc(defgh)')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1881 set virtualedit=all
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1882 normal 20|%
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1883 call assert_equal(4, col('.'))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1884 set virtualedit&
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1885 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1886 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1887
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1888 " Test for searching a pattern and stopping before a specified line
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1889 func Test_search_stopline()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1890 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1891 call setline(1, ['', '', '', 'vim'])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1892 call assert_equal(0, search('vim', 'n', 3))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1893 call assert_equal(4, search('vim', 'n', 4))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1894 call setline(1, ['vim', '', '', ''])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1895 call cursor(4, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1896 call assert_equal(0, search('vim', 'bn', 2))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1897 call assert_equal(1, search('vim', 'bn', 1))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1898 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1899 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1900
23007
7cb072acc5c0 patch 8.2.2050: search test contains unneeded sleeps
Bram Moolenaar <Bram@vim.org>
parents: 22997
diff changeset
1901 func Test_incsearch_highlighting_newline()
22997
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1902 CheckRunVimInTerminal
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1903 CheckOption incsearch
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1904 CheckScreendump
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1905 new
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1906 call test_override("char_avail", 1)
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1907
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1908 let commands =<< trim [CODE]
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1909 set incsearch nohls
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1910 call setline(1, ['test', 'xxx'])
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1911 [CODE]
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1912 call writefile(commands, 'Xincsearch_nl')
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1913 let buf = RunVimInTerminal('-S Xincsearch_nl', {'rows': 5, 'cols': 10})
23007
7cb072acc5c0 patch 8.2.2050: search test contains unneeded sleeps
Bram Moolenaar <Bram@vim.org>
parents: 22997
diff changeset
1914 call term_sendkeys(buf, '/test')
7cb072acc5c0 patch 8.2.2050: search test contains unneeded sleeps
Bram Moolenaar <Bram@vim.org>
parents: 22997
diff changeset
1915 call VerifyScreenDump(buf, 'Test_incsearch_newline1', {})
22997
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1916 " Need to send one key at a time to force a redraw
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1917 call term_sendkeys(buf, '\n')
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1918 call VerifyScreenDump(buf, 'Test_incsearch_newline2', {})
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1919 call term_sendkeys(buf, 'x')
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1920 call VerifyScreenDump(buf, 'Test_incsearch_newline3', {})
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1921 call term_sendkeys(buf, 'x')
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1922 call VerifyScreenDump(buf, 'Test_incsearch_newline4', {})
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1923 call term_sendkeys(buf, "\<CR>")
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1924 call VerifyScreenDump(buf, 'Test_incsearch_newline5', {})
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1925 call StopVimInTerminal(buf)
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1926
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1927 " clean up
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1928 call delete('Xincsearch_nl')
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1929 call test_override("char_avail", 0)
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1930 bw
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1931 endfunc
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1932
23505
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1933 func Test_incsearch_substitute_dump2()
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1934 CheckOption incsearch
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1935 CheckScreendump
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1936
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1937 call writefile([
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1938 \ 'set incsearch hlsearch scrolloff=0',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1939 \ 'for n in range(1, 4)',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1940 \ ' call setline(n, "foo " . n)',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1941 \ 'endfor',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1942 \ 'call setline(5, "abc|def")',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1943 \ '3',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1944 \ ], 'Xis_subst_script2')
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1945 let buf = RunVimInTerminal('-S Xis_subst_script2', {'rows': 9, 'cols': 70})
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1946
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1947 call term_sendkeys(buf, ':%s/\vabc|')
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1948 sleep 100m
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1949 call VerifyScreenDump(buf, 'Test_incsearch_sub_01', {})
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1950 call term_sendkeys(buf, "\<Esc>")
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1951
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1952 " The following should not be highlighted
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1953 call term_sendkeys(buf, ':1,5s/\v|')
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1954 sleep 100m
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1955 call VerifyScreenDump(buf, 'Test_incsearch_sub_02', {})
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1956
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1957
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1958 call StopVimInTerminal(buf)
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1959 call delete('Xis_subst_script2')
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1960 endfunc
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1961
25457
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1962 func Test_pattern_is_uppercase_smartcase()
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1963 new
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1964 let input=['abc', 'ABC', 'Abc', 'abC']
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1965 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1966 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1967 " default, matches firstline
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1968 %s/abc//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1969 call assert_equal(['', 'ABC', 'Abc', 'abC'],
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1970 \ getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1971
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1972 set smartcase ignorecase
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1973 sil %d
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1974 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1975 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1976 " with smartcase and incsearch set, matches everything
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1977 %s/abc//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1978 call assert_equal(['', '', '', ''], getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1979
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1980 sil %d
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1981 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1982 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1983 " with smartcase and incsearch set and found an uppercase letter,
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1984 " match only that.
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1985 %s/abC//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1986 call assert_equal(['abc', 'ABC', 'Abc', ''],
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1987 \ getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1988
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1989 sil %d
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1990 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1991 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1992 exe "norm! vG$\<esc>"
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1993 " \%V should not be detected as uppercase letter
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1994 %s/\%Vabc//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1995 call assert_equal(['', '', '', ''], getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1996
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1997 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1998 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
1999 exe "norm! vG$\<esc>"
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2000 " \v%V should not be detected as uppercase letter
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2001 %s/\v%Vabc//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2002 call assert_equal(['', '', '', ''], getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2003
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2004 call setline(1, input)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2005 call cursor(1,1)
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2006 exe "norm! vG$\<esc>"
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2007 " \v%VabC should be detected as uppercase letter
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2008 %s/\v%VabC//g
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2009 call assert_equal(['abc', 'ABC', 'Abc', ''],
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2010 \ getline(1, '$'))
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2011
25511
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2012 call setline(1, input)
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2013 call cursor(1,1)
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2014 " \Vabc should match everything
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2015 %s/\Vabc//g
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2016 call assert_equal(['', '', '', ''], getline(1, '$'))
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2017
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2018 call setline(1, input + ['_abc'])
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2019 " _ matches normally
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2020 %s/\v_.*//g
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2021 call assert_equal(['abc', 'ABC', 'Abc', 'abC', ''], getline(1, '$'))
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2022
25457
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2023 set smartcase& ignorecase&
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2024 bw!
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2025 endfunc
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2026
25874
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2027 func Test_no_last_search_pattern()
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2028 CheckOption incsearch
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2029
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2030 let @/ = ""
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2031 set incsearch
25876
b4d009c477a4 patch 8.2.3472: other crashes with empty search pattern not tested
Bram Moolenaar <Bram@vim.org>
parents: 25874
diff changeset
2032 " these were causing a crash
b4d009c477a4 patch 8.2.3472: other crashes with empty search pattern not tested
Bram Moolenaar <Bram@vim.org>
parents: 25874
diff changeset
2033 call feedkeys("//\<C-G>", 'xt')
b4d009c477a4 patch 8.2.3472: other crashes with empty search pattern not tested
Bram Moolenaar <Bram@vim.org>
parents: 25874
diff changeset
2034 call feedkeys("//\<C-T>", 'xt')
b4d009c477a4 patch 8.2.3472: other crashes with empty search pattern not tested
Bram Moolenaar <Bram@vim.org>
parents: 25874
diff changeset
2035 call feedkeys("??\<C-G>", 'xt')
b4d009c477a4 patch 8.2.3472: other crashes with empty search pattern not tested
Bram Moolenaar <Bram@vim.org>
parents: 25874
diff changeset
2036 call feedkeys("??\<C-T>", 'xt')
25874
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2037 endfunc
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2038
25911
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2039 func Test_search_with_invalid_range()
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2040 new
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2041 let lines =<< trim END
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2042 /\%.v
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2043 5/
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2044 c
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2045 END
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2046 call writefile(lines, 'Xrangesearch')
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2047 source Xrangesearch
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2048
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2049 bwipe!
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2050 call delete('Xrangesearch')
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2051 endfunc
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2052
25874
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2053
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
2054 " vim: shiftwidth=2 sts=2 expandtab