annotate src/testdir/test_search.vim @ 29189:d1e263ecf634 v8.2.5114

patch 8.2.5114: time limit on searchpair() does not work properly Commit: https://github.com/vim/vim/commit/5ea38d1e7fd597ffde13b292d43e12747f20e97f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 16 21:20:48 2022 +0100 patch 8.2.5114: time limit on searchpair() does not work properly Problem: Time limit on searchpair() does not work properly. Solution: Set the time limit once instead of for each regexp. (closes https://github.com/vim/vim/issues/10562)
author Bram Moolenaar <Bram@vim.org>
date Thu, 16 Jun 2022 22:30:03 +0200
parents b90bca860b5a
children 0af5fe160e4e
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
29189
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
331 bwipe!
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
332 endfunc
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
333
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
334 func Test_searchpair_timeout()
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
335 CheckFeature reltime
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
336
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
337 func Waitabit()
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
338 sleep 20m
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
339 return 1 " skip match
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
340 endfunc
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
341
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
342 new
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
343 call setline(1, range(100))
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
344 call setline(1, "(start here")
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
345 call setline(100, "end here)")
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
346 let starttime = reltime()
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
347
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
348 " A timeout of 100 msec should happen after about five times of 20 msec wait
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
349 " in Waitabit(). When the timeout applies to each search the elapsed time
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
350 " will be much longer.
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
351 call assert_equal(0, searchpair('(', '\d', ')', '', "Waitabit()", 0, 100))
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
352 let elapsed = reltime(starttime)->reltimefloat()
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
353 call assert_inrange(0.09, 0.300, elapsed)
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
354
d1e263ecf634 patch 8.2.5114: time limit on searchpair() does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 29071
diff changeset
355 bwipe!
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
356 endfunc
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
357
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
358 func Test_searchpairpos()
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
359 new
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
360 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
361
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
362 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
363 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
364 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
365 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
366 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
367 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
368 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
369 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
370 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
371 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
372 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
373 \ 'getline(".") =~ "^\\s*\["'))
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
374 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
375 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
376 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
377 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
378 set nomagic
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
379 4
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
380 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
381 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
382 set magic
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
383 4|norm ^
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
384 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
385 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
386
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
387 %d
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
388 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
389 /\<if 1
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
390 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
391 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
392 /\<if 2
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
393 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
394 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
395
10514
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
396 q!
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
397 endfunc
1435e45ee6fa commit https://github.com/vim/vim/commit/6e450a57541676036203a72d40b2e604e938371e
Christian Brabandt <cb@256bit.org>
parents: 10172
diff changeset
398
14189
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
399 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
400 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
401 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
402 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
403 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
404 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
405 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
406 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
407 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
408 endfunc
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
409
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
410 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
411 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
412 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
413 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
414 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
415 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
416 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
417 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
418 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
419 endfunc
0181a2cad0a1 patch 8.1.0112: no error when using bad arguments with searchpair()
Christian Brabandt <cb@256bit.org>
parents: 13808
diff changeset
420
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
421 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
422 func Zero()
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
423 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
424 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
425 func Partial(x)
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
426 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
427 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
428 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
429 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
430 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
431 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
432 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
433 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
434 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
435 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
436 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
437
14331
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
438 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
439 new
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
440 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
441
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
442 " 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
443 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
444
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
445 bwipe!
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
446 endfunc
f8280e1bfc84 patch 8.1.0181: memory leak with trailing characters in skip expression
Christian Brabandt <cb@256bit.org>
parents: 14189
diff changeset
447
11018
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
448 func Test_searchc()
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
449 " 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
450 new
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
451 norm ixx
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
452 exe "norm 0t\u93cf"
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
453 bw!
654fc5636b37 patch 8.0.0398: illegal memory access with "t"
Christian Brabandt <cb@256bit.org>
parents: 10514
diff changeset
454 endfunc
11613
7428a08c2f68 patch 8.0.0689: ~ character not escaped when extending search pattern
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
455
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
456 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
457 " 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
458 " 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
459 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
460 new
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
461 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
462 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
463 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
464
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
465 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
466 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
467 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
468 bw!
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
469 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
470
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
471 func Test_search_cmdline3()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
472 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
473
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
474 call Cmdline3_prep()
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
475 1
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
476 " first match
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
477 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
478 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
479
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
480 call Incsearch_cleanup()
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
481 endfunc
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
482
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
483 func Test_search_cmdline3s()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
484 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
485
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
486 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
487 1
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
488 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
489 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
490 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
491 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
492 call assert_equal(' 2 xxxe', getline('.'))
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
493 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
494 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
495 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
496 undo
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
497 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
498 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
499 undo
22087
ff21e2962490 patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents: 21491
diff changeset
500 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
501 "
35e7ead872db patch 8.1.0286: 'incsearch' does not apply to :smagic and :snomagic
Christian Brabandt <cb@256bit.org>
parents: 14542
diff changeset
502 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
503 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
504
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
505 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
506 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
507
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
508 func Test_search_cmdline3g()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
509 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
510
14515
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 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
512 1
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 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
514 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
515 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
516 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
517 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
518 undo
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
519 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
520 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
521 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
522 undo
8fa7f5ff2649 patch 8.1.0280: 'incsearch' highlighting does not work for ":g!/"
Christian Brabandt <cb@256bit.org>
parents: 14532
diff changeset
523 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
524 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
525 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
526
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
527 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
528 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
529
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
530 func Test_search_cmdline3v()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
531 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
532
14515
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
533 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
534 1
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
535 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
536 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
537 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
538 undo
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
539 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
540 call assert_equal(1, line('$'))
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
541 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
542
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
543 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
544 endfunc
3648e74dd523 patch 8.1.0271: 'incsearch' doesn't work for :s, :g or :v
Christian Brabandt <cb@256bit.org>
parents: 14331
diff changeset
545
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
546 func Test_search_cmdline4()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
547 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
548
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
549 " 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
550 " 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
551 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
552 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
553 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
554 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
555 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
556 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
557 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
558 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
559 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
560 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
561 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
562 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
563 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
564 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
565 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
566 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
567 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
568 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
569 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
570 $
80af4916eadc patch 8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
Christian Brabandt <cb@256bit.org>
parents: 11613
diff changeset
571 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
572 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
573 " 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
574 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
575 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
576 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
577 endfunc
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
578
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
579 func Test_search_cmdline5()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
580 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
581
12664
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
582 " 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
583 " 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
584 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
585 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
586 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
587 1
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
588 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
589 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
590 $
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
591 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
592 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
593 " 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
594 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
595 bw!
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
596 endfunc
42cd1f315e8b patch 8.0.1210: CTRL-G and CTRL-T are ignored with typeahead
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
597
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
598 func Test_search_cmdline6()
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
599 " Test that consecutive matches
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
600 " 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
601 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
602
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
603 " 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
604 " 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
605 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
606 new
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
607 call setline(1, [' bbvimb', ''])
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
608 set incsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
609 " first match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
610 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
611 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
612 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
613 " second match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
614 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
615 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
616 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
617 " third match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
618 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
619 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
620 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
621 " first match again
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
622 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
623 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
624 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
625 set nowrapscan
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
626 " last match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
627 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
628 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
629 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
630 " clean up
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
631 set wrapscan&vim
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
632 set noincsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
633 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
634 bw!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
635 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
636
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
637 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
638 " 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
639 " 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
640 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
641
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
642 " 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
643 " 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
644 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
645 new
14522
97641c4f5687 patch 8.1.0274: 'incsearch' triggers on ":source"
Christian Brabandt <cb@256bit.org>
parents: 14515
diff changeset
646 let @/ = 'b'
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
647 call setline(1, [' bbvimb', ''])
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
648 set incsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
649 " first match
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
650 norm! gg0
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
651 " 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
652 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
653 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
654 " 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
655 call feedkeys("/\<cr>", 'tx')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
656 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
657 " 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
658 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
659 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
660
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
661 " 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
662 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
663 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
664 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
665 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
666 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
667 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
668
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
669 set noincsearch
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
670 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
671 bw!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
672 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
673
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
674 func Test_search_cmdline8()
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
675 " 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
676 " 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
677 CheckOption incsearch
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
678 CheckFeature terminal
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
679 CheckNotGui
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
680 if has("win32")
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
681 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
682 endif
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
683
12744
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
684 let h = winheight(0)
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
685 if h < 3
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
686 return
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
687 endif
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
688 " Prepare buffer text
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
689 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
690 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
691 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
692
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
693 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
694
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
695 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
696 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
697 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
698 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
699 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
700 call TermWait(buf, 250)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
701 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
702 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
703 \ 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
704 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
705 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
706 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
707 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
708 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
709 " clean up
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
710 call delete('Xsearch.txt')
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
711
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
712 bwipe!
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
713 endfunc
0c704288ced4 patch 8.0.1250: 'hlsearch' highlighting not removed after incsearch
Christian Brabandt <cb@256bit.org>
parents: 12732
diff changeset
714
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
715 " 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
716 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
717 put ='1 a aa abb abbccc'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
718 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
719 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
720
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
721 put ='2 d dd dee deefff'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
722 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
723 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
724
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
725 set nomagic
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
726 put ='3 g gg ghh ghhiii'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
727 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
728 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
729
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
730 put ='4 j jj jkk jkklll'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
731 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
732 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
733
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
734 put ='5 m mm mnn mnnooo'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
735 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
736 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
737
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
738 put ='6 x ^aa$ x'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
739 exe 'normal! /\V^aa$' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
740 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
741
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
742 set magic
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
743 put ='7 (a)(b) abbaa'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
744 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
745 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
746
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
747 put ='8 axx [ab]xx'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
748 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
749 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
750
19958
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
751 %d
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
752 endfunc
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
753
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
754 func Test_search_regexp()
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
755 enew!
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
756
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
757 set regexpengine=1
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
758 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
759 set regexpengine=2
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
760 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
761 set regexpengine&
0b42b5e50344 patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19954
diff changeset
762
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
763 set undolevels=100
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
764 put ='9 foobar'
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
765 put =''
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
766 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
767 normal G
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
768 exe 'normal! dv?bar?' . "\<CR>"
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
769 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
770 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
771 call assert_equal(2, line('$'))
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
772 normal u
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
773 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
774 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
775 call assert_equal(3, line('$'))
12560
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
776
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
777 set undolevels&
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
778 enew!
44aa2997239d patch 8.0.1158: still old style tests
Christian Brabandt <cb@256bit.org>
parents: 11619
diff changeset
779 endfunc
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
780
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
781 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
782 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
783
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
784 set incsearch hlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
785 " 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
786 " 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
787 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
788 new
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
789 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
790
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
791 1
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
792 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
793 call assert_equal('second', @/)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
794 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
795
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
796 " 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
797 1
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
798 let @/ = 'last pattern'
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
799 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
800 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
801 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
802 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
803 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
804 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
805 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
806 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
807
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
808 " clean up
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
809 set noincsearch nohlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
810 bw!
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
811 endfunc
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
812
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
813 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
814 CheckOption incsearch
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
815 CheckFeature terminal
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
816 CheckNotGui
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17411
diff changeset
817
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
818 let h = winheight(0)
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
819 if h < 3
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
820 return
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
821 endif
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
822
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
823 " Prepare buffer text
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
824 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
825 call writefile(lines, 'Xsearch.txt')
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
826 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
827
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
828 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
829 " 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
830 call TermWait(buf)
12720
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
831
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
832 " 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
833 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
834 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
835 call TermWait(buf, 100)
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
836 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
837 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
838 " a0: attr_normal
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
839 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
840 " a1: attr_incsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
841 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
842 " a2: attr_hlsearch
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
843 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
844 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
845 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
846 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
847 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
848
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
849 " Test incremental highlight search
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
850 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
851 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
852 " Buffer:
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
853 " abb vim vim vi
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
854 " vimvivim
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
855 " Search: /vim
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,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
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 <C-g>
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, "\<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
863 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
864 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
865 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
866 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
867 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
868
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
869 " Test <C-t>
12763
7f27e9769f62 patch 8.0.1259: search test can be flaky
Christian Brabandt <cb@256bit.org>
parents: 12759
diff changeset
870 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
871 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
872 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
873 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
874 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
875 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
876
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
877 " 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
878 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
879 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
880 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
881 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
882 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
883 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
884
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
885 " 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
886 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
887 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
888 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
889 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
890 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
891 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
892 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
893 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
894 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
895
12732
75abce3e933d patch 8.0.1244: search test does not work correctly on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12730
diff changeset
896 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
897 bwipe!
37c384802df4 patch 8.0.1238: incremental search only shows one match
Christian Brabandt <cb@256bit.org>
parents: 12664
diff changeset
898 endfunc
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
899
15263
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
900 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
901 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
902
15263
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
903 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
904 new
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
905 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
906 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
907 " 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
908 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
909
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
910 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
911 endfunc
ad065b8123e8 patch 8.1.0640: get E14 while typing command :tab with 'incsearch' set
Bram Moolenaar <Bram@vim.org>
parents: 15148
diff changeset
912
13790
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
913 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
914 CheckRunVimInTerminal
13790
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
915 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
916 call writefile([
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
917 \ '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
918 \ '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
919 \ '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
920 \ 'normal gg',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
921 \ 'redraw',
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
922 \ ], 'Xscript')
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
923 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
924 " 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
925 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
926 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
927 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
928 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
929 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
930 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
931 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
932 sleep 100m
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
933 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
934 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
935
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
936 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
937 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
938 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
939 endfunc
dd6a63e3e7c4 patch 8.0.1767: with 'incsearch' text may jump up and down
Christian Brabandt <cb@256bit.org>
parents: 13132
diff changeset
940
14615
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
941 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
942 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
943 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
944
14615
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
945 call writefile([
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
946 \ 'set incsearch hlsearch scrolloff=0',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
947 \ 'for n in range(1, 8)',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
948 \ ' call setline(n, "foo " . n)',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
949 \ 'endfor',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
950 \ '3',
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
951 \ ], 'Xis_search_script')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
952 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
953 " 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
954 " the 'ambiwidth' check.
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
955 sleep 100m
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
956
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
957 " 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
958 call term_sendkeys(buf, '/fo')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
959 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
960 call term_sendkeys(buf, "\<Esc>")
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
961 sleep 100m
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
962
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
963 call term_sendkeys(buf, '/\v')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
964 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
965 call term_sendkeys(buf, "\<Esc>")
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
966
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
967 call StopVimInTerminal(buf)
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
968 call delete('Xis_search_script')
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
969 endfunc
c6b41d47bac1 patch 8.1.0321: 'incsearch' regression: / highlights everything
Christian Brabandt <cb@256bit.org>
parents: 14613
diff changeset
970
24000
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
971 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
972 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
973 CheckScreendump
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
974
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
975 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
976 \ '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
977 \ '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
978 \ '/.*',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
979 \ '2',
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
980 \ ], '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
981 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
982 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
983
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
984 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
985 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
986
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
987 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
988 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
989 endfunc
bb2e921d2601 patch 8.2.2542: highlight of char beyond line end is not correct
Bram Moolenaar <Bram@vim.org>
parents: 23505
diff changeset
990
24514
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
991 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
992 CheckOption hlsearch
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
993 CheckScreendump
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
994
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
995 call writefile([
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
996 \ 'set hlsearch',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
997 \ '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
998 \ '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
999 \ '/yyy',
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
1000 \ '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
1001 \ ], 'Xhlvisual_script')
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
1002 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
1003 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
1004 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
1005 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
1006
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
1007 call StopVimInTerminal(buf)
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
1008 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
1009 endfunc
e3efa11b6a1e patch 8.2.2797: Search highlight disappears in the Visual area
Bram Moolenaar <Bram@vim.org>
parents: 24000
diff changeset
1010
24745
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1011 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
1012 CheckScreendump
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1013
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1014 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
1015 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
1016 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
1017 END
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1018 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
1019 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
1020
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1021 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
1022 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
1023 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
1024 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
1025 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
1026
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1027 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
1028 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
1029 endfunc
b1fa3f005c93 patch 8.2.2911: pattern "%V" does not match all of block selection
Bram Moolenaar <Bram@vim.org>
parents: 24693
diff changeset
1030
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1031 func Test_incsearch_substitute()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1032 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1033
14524
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1034 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
1035 new
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1036 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
1037 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
1038 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
1039 endfor
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1040 4
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1041 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
1042 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
1043 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
1044 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
1045 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
1046 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
1047
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1048 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
1049 endfunc
e36d6e01708c patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Christian Brabandt <cb@256bit.org>
parents: 14522
diff changeset
1050
22478
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1051 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
1052 new
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1053 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
1054 set incsearch
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1055
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1056 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
1057 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
1058 redraw
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1059 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
1060
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1061 call Incsearch_cleanup()
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1062 bwipe!
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1063 endfunc
5193420617f1 patch 8.2.1787: crash with 'incsearch' and very long line
Bram Moolenaar <Bram@vim.org>
parents: 22405
diff changeset
1064
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1065 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
1066 CheckScreendump
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1067
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1068 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
1069 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
1070 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
1071 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
1072 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
1073 END
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1074 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
1075 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
1076
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1077 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
1078 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
1079
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1080 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
1081 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
1082
28562
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1083 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
1084 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
1085
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1086 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
1087 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
1088
e96111a91a21 patch 8.2.4805: CurSearch used for all matches in current line
Bram Moolenaar <Bram@vim.org>
parents: 28469
diff changeset
1089 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
1090 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
1091 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
1092
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1093 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
1094 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
1095
9ff0e5a29037 patch 8.2.4759: CurSearch highlight does not work for multi-line match
Bram Moolenaar <Bram@vim.org>
parents: 28399
diff changeset
1096 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
1097 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
1098 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
1099 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
1100 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
1101 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
1102 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
1103 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
1104 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
1105
29050
a2710736125a patch 8.2.5047: CurSearch highlight is often wrong
Bram Moolenaar <Bram@vim.org>
parents: 28562
diff changeset
1106 " check clearing CurSearch when using it for another match
a2710736125a patch 8.2.5047: CurSearch highlight is often wrong
Bram Moolenaar <Bram@vim.org>
parents: 28562
diff changeset
1107 call term_sendkeys(buf, "G?^abcd\<CR>Y")
a2710736125a patch 8.2.5047: CurSearch highlight is often wrong
Bram Moolenaar <Bram@vim.org>
parents: 28562
diff changeset
1108 call term_sendkeys(buf, "kkP")
a2710736125a patch 8.2.5047: CurSearch highlight is often wrong
Bram Moolenaar <Bram@vim.org>
parents: 28562
diff changeset
1109 call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_changed_1', {})
a2710736125a patch 8.2.5047: CurSearch highlight is often wrong
Bram Moolenaar <Bram@vim.org>
parents: 28562
diff changeset
1110
28399
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1111 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
1112 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
1113 endfunc
d395fadbaf67 patch 8.2.4724: current instance of last search pattern not easily spotted
Bram Moolenaar <Bram@vim.org>
parents: 26907
diff changeset
1114
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1115 " 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
1116 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
1117 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1118 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1119
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1120 call writefile([
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1121 \ '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
1122 \ '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
1123 \ ' 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
1124 \ 'endfor',
14542
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1125 \ '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
1126 \ '3',
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1127 \ ], 'Xis_subst_script')
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1128 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
1129 " 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
1130 " the 'ambiwidth' check.
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1131 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1132
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1133 " 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
1134 " 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
1135 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
1136 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1137 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
1138 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1139 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
1140 sleep 100m
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1141 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
1142 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
1143 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
1144
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1145 " 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
1146 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
1147 sleep 100m
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1148 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
1149 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
1150
58ca11610819 patch 8.1.0277: 'incsearch' highlighting wrong in a few cases
Christian Brabandt <cb@256bit.org>
parents: 14526
diff changeset
1151 " 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
1152 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
1153 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
1154 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
1155
60e0022e6e5d patch 8.1.0278: 'incsearch' highlighting does not accept reverse range
Christian Brabandt <cb@256bit.org>
parents: 14528
diff changeset
1156 " 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
1157 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
1158 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
1159 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
1160
14532
58cc47fae12e patch 8.1.0279: 'incsearch' highlighting does not skip white space
Christian Brabandt <cb@256bit.org>
parents: 14530
diff changeset
1161 " 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
1162 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
1163 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
1164 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
1165
14538
213f1a519378 patch 8.1.0282: 'incsearch' does not work with command modifiers
Christian Brabandt <cb@256bit.org>
parents: 14534
diff changeset
1166 " 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
1167 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
1168 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
1169 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
1170
14542
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1171 " Cursorline highlighting at match
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1172 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
1173 call term_sendkeys(buf, 'G9G')
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1174 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
1175 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
1176 call term_sendkeys(buf, "\<Esc>")
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1177
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1178 " 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
1179 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
1180 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
1181 call term_sendkeys(buf, "\<Esc>")
116a01c73fd8 patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Christian Brabandt <cb@256bit.org>
parents: 14538
diff changeset
1182
14613
3f9b73cc8adb patch 8.1.0320: too much 'incsearch' highlight for pat matching everything
Christian Brabandt <cb@256bit.org>
parents: 14563
diff changeset
1183 " 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
1184 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
1185 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
1186 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
1187 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
1188 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
1189
14652
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1190 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
1191
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1192 " 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
1193 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
1194 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
1195 sleep 100m
f3b183c3d3e2 patch 8.1.0339: wrong highlight when 'incsearch' set and cancelling :s
Christian Brabandt <cb@256bit.org>
parents: 14615
diff changeset
1196 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
1197 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
1198
14774
5e5f2d824189 patch 8.1.0399: 'hlsearch' highlight remains in other window
Christian Brabandt <cb@256bit.org>
parents: 14760
diff changeset
1199 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
1200 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
1201 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
1202 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
1203 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
1204 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
1205 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
1206 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
1207 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
1208 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
1209
d7c47e45bcc3 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Bram Moolenaar <Bram@vim.org>
parents: 17994
diff changeset
1210 " 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
1211 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
1212 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
1213 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
1214 " 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
1215 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
1216 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
1217 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
1218 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
1219 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
1220
14526
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1221 call StopVimInTerminal(buf)
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1222 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
1223 endfunc
66b9514b5a99 patch 8.1.0276: no test for 'incsearch' highlighting with :s
Christian Brabandt <cb@256bit.org>
parents: 14524
diff changeset
1224
19475
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1225 func Test_incsearch_highlighting()
19705
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1226 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1227 CheckScreendump
19475
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1228
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1229 call writefile([
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1230 \ '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
1231 \ '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
1232 \ ], '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
1233 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
1234 " 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
1235 " 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
1236 sleep 300m
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1237
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1238 " 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
1239 " 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
1240 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
1241 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
1242 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
1243
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1244 call StopVimInTerminal(buf)
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1245 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
1246 endfunc
5512aa74cb62 patch 8.2.0295: highlighting for :s wrong when using different separator
Bram Moolenaar <Bram@vim.org>
parents: 19435
diff changeset
1247
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1248 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
1249 CheckFeature timers
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1250 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1251 CheckScreendump
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1252
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1253 call writefile([
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1254 \ '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
1255 \ '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
1256 \ '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
1257 \ ], 'Xis_change_script')
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1258 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
1259 " 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
1260 " the 'ambiwidth' check.
15918
22b51b13634d patch 8.1.0965: search test fails
Bram Moolenaar <Bram@vim.org>
parents: 15914
diff changeset
1261 sleep 300m
15914
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1262
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1263 " 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
1264 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
1265 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
1266 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
1267
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1268 call StopVimInTerminal(buf)
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1269 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
1270 endfunc
c94b46f98b1a patch 8.1.0963: illegal memory access when using 'incsearch'
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
1271
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1272 " 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
1273 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
1274 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1275 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1276
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1277 call writefile([
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1278 \ '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
1279 \ '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
1280 \ ], 'Xis_sort_script')
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1281 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
1282 " 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
1283 " the 'ambiwidth' check.
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1284 sleep 100m
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1285
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1286 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
1287 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
1288 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
1289
20164
2dd1ac2c48f4 patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Bram Moolenaar <Bram@vim.org>
parents: 20128
diff changeset
1290 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
1291 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
1292 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
1293
14556
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1294 call StopVimInTerminal(buf)
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1295 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
1296 endfunc
2bee637a8edc patch 8.1.0291: 'incsearch' highlighting not used for :sort
Christian Brabandt <cb@256bit.org>
parents: 14546
diff changeset
1297
14563
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1298 " 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
1299 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
1300 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1301 CheckScreendump
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1302
14563
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1303 call writefile([
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1304 \ '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
1305 \ '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
1306 \ ], 'Xis_vimgrep_script')
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1307 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
1308 " 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
1309 " the 'ambiwidth' check.
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1310 sleep 100m
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1311
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1312 " 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
1313 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
1314 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
1315 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
1316
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1317 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
1318 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
1319 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
1320
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1321 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
1322 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
1323 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
1324
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1325 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
1326 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
1327 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
1328
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1329 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
1330 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
1331 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
1332
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1333 call StopVimInTerminal(buf)
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1334 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
1335 endfunc
d84e67a12671 patch 8.1.0295: no 'incsearch' highlighting for :vimgrep and similar
Christian Brabandt <cb@256bit.org>
parents: 14556
diff changeset
1336
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1337 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
1338 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1339
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1340 new
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1341 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
1342 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
1343 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
1344 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
1345 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
1346 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
1347
14760
fd69edd2c67e patch 8.1.0392: error while typing :/foo/s// with 'incsearch' enabled
Christian Brabandt <cb@256bit.org>
parents: 14687
diff changeset
1348 " 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
1349 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
1350 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
1351
14677
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1352 bwipe!
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1353 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
1354 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
1355 endfunc
7771a1ff8b99 patch 8.1.0351: 'incsearch' for :/foo/s//<Esc> changes last search pattern
Christian Brabandt <cb@256bit.org>
parents: 14652
diff changeset
1356
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1357 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
1358 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1359
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1360 new
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1361 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
1362 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
1363 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
1364 try
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1365 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
1366 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
1367 endtry
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1368 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
1369
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1370 bwipe!
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1371 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
1372 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
1373 endfunc
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1374
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1375 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
1376 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1377
14687
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1378 new
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1379 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
1380 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
1381 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
1382 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
1383 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
1384 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
1385
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1386 bwipe!
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1387 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
1388 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
1389 endfunc
2982a54aa304 patch 8.1.0356: using :s with 'incsearch' prevents CTRL-R CTRL-W
Christian Brabandt <cb@256bit.org>
parents: 14677
diff changeset
1390
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1391 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
1392 CheckFeature terminal
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1393
12730
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1394 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
1395 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
1396 return
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1397 endif
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1398 " 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
1399 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
1400 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
1401 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
1402 bwipe!
6fa9f6b4d159 patch 8.0.1243: no test for what 8.0.1227 fixes
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
1403 endfunc
12759
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1404
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1405 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
1406 call search("\%UC0000000")
528b227051f8 patch 8.0.1257: no test for fix of undefined behavior
Christian Brabandt <cb@256bit.org>
parents: 12744
diff changeset
1407 endfunc
12788
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1408
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1409 " 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
1410 func Test_search_multibyte()
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1411 let save_enc = &encoding
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1412 set encoding=utf8
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1413 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1414 call append('$', 'A')
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1415 call cursor(2, 1)
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1416 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
1417 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1418 let &encoding = save_enc
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12763
diff changeset
1419 endfunc
13043
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1420
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1421 " 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
1422 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
1423 new
18935
ed246d4c46ba patch 8.2.0028: searchpairpos() is not tested
Bram Moolenaar <Bram@vim.org>
parents: 18693
diff changeset
1424 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
1425 call search(getline("."))
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1426 bwipe!
307f2622826f patch 8.0.1397: pattern with & following nothing gives an error
Christian Brabandt <cb@256bit.org>
parents: 12855
diff changeset
1427 endfunc
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1428
24693
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1429 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
1430 new
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1431 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
1432 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
1433 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
1434 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
1435 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
1436 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
1437 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
1438 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
1439 endfor
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1440
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1441 bwipe!
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1442 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
1443 endfunc
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1444
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1445 func Test_search_sentence()
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1446 new
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1447 " 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
1448 /\%'(
25ab78f14c8b patch 8.0.1417: test doesn't search for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13082
diff changeset
1449 /
24693
97789fcef0cf patch 8.2.2885: searching for %'> does not match linewise end of line
Bram Moolenaar <Bram@vim.org>
parents: 24514
diff changeset
1450 bwipe
13082
a80082fd1a1d patch 8.0.1416: crash when searching for a sentence
Christian Brabandt <cb@256bit.org>
parents: 13043
diff changeset
1451 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
1452
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
1453 " 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
1454 " 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
1455 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
1456 " 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
1457 " 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
1458 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
1459 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
1460 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
1461
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
1462 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
1463 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
1464
27ba8d007a86 patch 8.1.0584: with search CTRL-L does not pick up composing characters
Bram Moolenaar <Bram@vim.org>
parents: 15089
diff changeset
1465 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
1466 " 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
1467 " 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
1468 " '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
1469 " ' ̀' 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
1470 " ' ́' 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
1471 " ' ̇' 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
1472 " ' ̣' 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
1473 " 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
1474 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1475
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
1476 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
1477 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
1478 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
1479 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
1480 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
1481 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
1482 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
1483 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
1484 endfunc
15924
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1485
15959
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1486 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
1487 " 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
1488 try
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1489 /\%Ufffffc23
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1490 catch
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1491 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
1492 endtry
15959
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1493 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1494 set re=1
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1495 /\%Ufffffc23
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1496 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1497 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
1498 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1499 set re&
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1500 endfunc
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1501
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1502 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
1503 " 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
1504 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1505 /[\Ufffffc1f]
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1506 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1507 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
1508 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1509 try
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1510 set re=1
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1511 /[\Ufffffc1f]
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1512 catch
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1513 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
1514 endtry
4feaa025491b patch 8.1.0985: crash with large number in regexp
Bram Moolenaar <Bram@vim.org>
parents: 15935
diff changeset
1515 set re&
15924
98d315176d48 patch 8.1.0968: crash when using search pattern %Ufffffc23
Bram Moolenaar <Bram@vim.org>
parents: 15918
diff changeset
1516 endfunc
15935
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1517
ff00d207cc5e patch 8.1.0973: pattern with syntax error gives threee error messages
Bram Moolenaar <Bram@vim.org>
parents: 15924
diff changeset
1518 func Test_one_error_msg()
19973
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1519 " 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
1520 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
1521 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
1522
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
1523 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
1524 CheckOption incsearch
599793519c85 patch 8.2.0409: search test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents: 19475
diff changeset
1525
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
1526 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
1527 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
1528 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
1529 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
1530 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
1531 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
1532 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
1533 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
1534
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
1535 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
1536 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
1537 endfunc
16419
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1538
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1539 " 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
1540 func Test_search_match_at_curpos()
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1541 new
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1542 call append(0, ['foobar', '', 'one two', ''])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1543
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1544 normal gg
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1545
17994
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1546 eval 'foobar'->search('c')
16419
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1547 call assert_equal([1, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1548
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1549 normal j
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1550 call search('^$', 'c')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1551 call assert_equal([2, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1552
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1553 call search('^$', 'bc')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1554 call assert_equal([2, 1], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1555
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1556 exe "normal /two\<CR>"
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1557 call search('.', 'c')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1558 call assert_equal([3, 5], [line('.'), col('.')])
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1559
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1560 close!
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 16287
diff changeset
1561 endfunc
16949
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1562
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1563 " 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
1564 func Test_search_errors()
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1565 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
1566 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
1567 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
1568 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
1569 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
1570
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1571 new
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1572 call setline(1, ['foo', 'bar'])
9f5758ee0b10 patch 8.2.0542: no test for E386
Bram Moolenaar <Bram@vim.org>
parents: 19969
diff changeset
1573 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
1574 bwipe!
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1575 endfunc
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19705
diff changeset
1576
29071
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1577 func Test_search_timeout()
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1578 new
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1579 let pattern = '\%#=1a*.*X\@<=b*'
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1580 let search_timeout = 0.02
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1581 let slow_target_timeout = search_timeout * 15.0
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1582
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1583 for n in range(40, 400, 30)
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1584 call setline(1, ['aaa', repeat('abc ', n), 'ccc'])
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1585 let start = reltime()
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1586 call search(pattern, '', 0)
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1587 let elapsed = reltimefloat(reltime(start))
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1588 if elapsed > slow_target_timeout
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1589 break
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1590 endif
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1591 endfor
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1592 call assert_true(elapsed > slow_target_timeout)
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1593
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1594 let max_time = elapsed / 2.0
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1595 let start = reltime()
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1596 call search(pattern, '', 0, float2nr(search_timeout * 1000))
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1597 let elapsed = reltimefloat(reltime(start))
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1598 call assert_true(elapsed < max_time)
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1599
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1600 bwipe!
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1601 endfunc
b90bca860b5a patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Bram Moolenaar <Bram@vim.org>
parents: 29050
diff changeset
1602
16949
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1603 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
1604 new
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1605 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
1606
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1607 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
1608 let @/ = 'foo'
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
1609 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
1610 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
1611 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
1612
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1613 " right-left
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1614 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
1615 set rl
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1616 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
1617 let @/ = 'foo'
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1618 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
1619 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
1620 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
1621 set norl
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1622 endif
a32169a40566 patch 8.1.1475: search string not displayed when 'rightleft' is set
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
1623 endfunc
17994
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1624
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1625 func Test_searchdecl()
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1626 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
1627 int global;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1628
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1629 func()
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1630 {
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1631 int global;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1632 if (cond) {
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1633 int local;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1634 }
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1635 int local;
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1636 // comment
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1637 }
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1638 END
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1639 new
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1640 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
1641 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1642 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
1643 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
1644
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1645 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1646 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
1647 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
1648
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1649 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1650 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
1651 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
1652
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1653 10
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1654 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
1655 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
1656
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1657 bwipe!
0dcc2ee838dd patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17918
diff changeset
1658 endfunc
19147
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1659
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1660 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
1661 " 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
1662 set t_PE=
19147
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1663 exe "norm /\x80PS"
06ef1e438ac8 patch 8.2.0133: invalid memory access with search command
Bram Moolenaar <Bram@vim.org>
parents: 18935
diff changeset
1664 endfunc
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1665
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1666 " 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
1667 " 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
1668 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
1669 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
1670 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
1671 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
1672 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
1673 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
1674 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
1675 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
1676 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
1677 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
1678 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
1679 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
1680 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
1681 let p = []
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1682 let p = @/
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1683 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
1684 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
1685 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
1686 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
1687 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
1688 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
1689 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
1690 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
1691 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
1692 qall!
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1693 [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1694 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
1695
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1696 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
1697 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
1698 endif
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1699 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
1700 call delete('Xresult')
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1701 endfunc
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1702
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1703 " 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
1704 " substitute pattern
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1705 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
1706 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
1707 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
1708 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
1709 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
1710 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
1711 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
1712 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
1713 set regexpengine&
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1714 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
1715 qall!
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1716 [SCRIPT]
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1717 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
1718 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
1719 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
1720 endif
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19308
diff changeset
1721 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
1722 call delete('Xresult')
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1723 endfunc
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
1724
19435
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1725 " 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
1726 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
1727 new
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1728 set nowrapscan
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1729 let @/ = '1abcxyz2'
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1730 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
1731 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
1732 set wrapscan&
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1733 close
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1734 endfunc
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1735
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1736 " 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
1737 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
1738 new
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1739 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
1740 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
1741 let @/ = 'foo'
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1742 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
1743 normal N
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1744 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
1745 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
1746 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
1747 normal N
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1748 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
1749 close!
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1750 endfunc
8f8a5a15d00a patch 8.2.0275: some Ex code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 19370
diff changeset
1751
19950
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1752 " Test for invalid regular expressions
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1753 func Test_invalid_regexp()
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1754 set regexpengine=1
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1755 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
1756 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
1757 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
1758 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
1759 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
1760 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
1761 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
1762 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
1763 call assert_fails("call search('\\+')", 'E64:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1764 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
1765 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
1766 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
1767 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
1768 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
1769 call assert_fails("call search('\\%[]')", 'E70:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1770 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
1771 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
1772 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
1773 set regexpengine=2
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1774 call assert_fails("call search('\\_')", 'E865:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1775 call assert_fails("call search('\\+')", 'E866:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1776 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
1777 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
1778 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
1779 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
1780 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
1781 call assert_fails("call search('\\%(')", 'E53:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1782 call assert_fails("call search('\\(')", 'E54:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1783 call assert_fails("call search('\\)')", 'E55:')
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1784 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
1785 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
1786 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
1787 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
1788 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
1789 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
1790 set regexpengine&
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1791 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
1792 endfunc
9cbe3a4f1492 patch 8.2.0531: various errors not tested
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
1793
19969
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1794 " 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
1795 " 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
1796 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
1797 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
1798 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
1799 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
1800 endfunc
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1801
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1802 " 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
1803 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
1804 new
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1805 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
1806 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
1807 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
1808 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
1809 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
1810 close!
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1811 endfunc
b07672d13ff9 patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents: 19958
diff changeset
1812
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1813 " 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
1814 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
1815 new
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1816 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
1817 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
1818 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
1819
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1820 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
1821 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
1822 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
1823
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1824 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
1825 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
1826 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
1827
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1828 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
1829 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
1830
20199
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1831 " 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
1832 call setline(1, ['', ' Hello\ '])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1833 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1834 call feedkeys('/\_.\%(\uello\)\' .. "\<CR>", 'xt')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1835 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
1836
20128
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1837 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
1838 close!
21491
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1839 endfun
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1840
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1841 " 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
1842 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
1843 new
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1844 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
1845 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
1846
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1847 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
1848 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
1849 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
1850
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1851 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
1852 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
1853 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
1854
e3c1e12f062c patch 8.2.1296: some part of using 'smarcase' was not tested
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
1855 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
1856 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
1857 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
1858 endfunc
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1859
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1860 " 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
1861 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
1862 new
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1863 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
1864 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
1865 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
1866 close!
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1867 endfunc
0b35a7ffceb2 patch 8.2.0619: null dict is not handled like an empty dict
Bram Moolenaar <Bram@vim.org>
parents: 19973
diff changeset
1868
20199
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1869 " Test for various search offsets
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1870 func Test_search_offset()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1871 " 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
1872 " 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
1873 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1874 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
1875 call search('two\_.', 'e')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1876 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
1877
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1878 " 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
1879 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1880 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
1881 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
1882
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1883 " 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
1884 call cursor(2, 10)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1885 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
1886 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
1887
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1888 " 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
1889 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1890 exe "normal /three/+1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1891 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
1892
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1893 " 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
1894 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1895 exe "normal ?one?-1\<CR>"
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1896 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
1897
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1898 " 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
1899 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1900 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
1901 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
1902 call cursor(2, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1903 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
1904 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
1905
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1906 " 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
1907 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1908 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
1909 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
1910 call cursor(1, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1911 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
1912 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
1913
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1914 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1915 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1916
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1917 " 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
1918 func Test_search_match_paren()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1919 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1920 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
1921 " 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
1922 call cursor(1, 4)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1923 normal %
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1924 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
1925 normal %
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1926 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
1927 call cursor(1, 5)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1928 normal ])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1929 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
1930 call cursor(1, 24)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1931 normal [(
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1932 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
1933
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1934 " 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
1935 call setline(1, 'abc(defgh)')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1936 set virtualedit=all
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1937 normal 20|%
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1938 call assert_equal(4, col('.'))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1939 set virtualedit&
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1940 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1941 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1942
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1943 " 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
1944 func Test_search_stopline()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1945 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1946 call setline(1, ['', '', '', 'vim'])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1947 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
1948 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
1949 call setline(1, ['vim', '', '', ''])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1950 call cursor(4, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1951 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
1952 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
1953 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1954 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 20164
diff changeset
1955
23007
7cb072acc5c0 patch 8.2.2050: search test contains unneeded sleeps
Bram Moolenaar <Bram@vim.org>
parents: 22997
diff changeset
1956 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
1957 CheckRunVimInTerminal
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1958 CheckOption incsearch
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1959 CheckScreendump
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1960 new
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1961 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
1962
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1963 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
1964 set incsearch nohls
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1965 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
1966 [CODE]
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1967 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
1968 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
1969 call term_sendkeys(buf, '/test')
7cb072acc5c0 patch 8.2.2050: search test contains unneeded sleeps
Bram Moolenaar <Bram@vim.org>
parents: 22997
diff changeset
1970 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
1971 " 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
1972 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
1973 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
1974 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
1975 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
1976 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
1977 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
1978 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
1979 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
1980 call StopVimInTerminal(buf)
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1981
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1982 " clean up
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1983 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
1984 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
1985 bw
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1986 endfunc
00548e40e708 patch 8.2.2045: highlighting a character too much with incsearch
Bram Moolenaar <Bram@vim.org>
parents: 22478
diff changeset
1987
23505
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1988 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
1989 CheckOption incsearch
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1990 CheckScreendump
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1991
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1992 call writefile([
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1993 \ '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
1994 \ '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
1995 \ ' 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
1996 \ 'endfor',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1997 \ '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
1998 \ '3',
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
1999 \ ], 'Xis_subst_script2')
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2000 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
2001
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2002 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
2003 sleep 100m
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2004 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
2005 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
2006
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2007 " 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
2008 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
2009 sleep 100m
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2010 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
2011
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2012
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2013 call StopVimInTerminal(buf)
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2014 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
2015 endfunc
bb29b09902d5 patch 8.2.2295: incsearch does not detect empty pattern properly
Bram Moolenaar <Bram@vim.org>
parents: 23007
diff changeset
2016
25457
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2017 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
2018 new
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2019 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
2020 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
2021 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
2022 " 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
2023 %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
2024 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
2025 \ 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
2026
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2027 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
2028 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
2029 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
2030 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
2031 " 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
2032 %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
2033 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
2034
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2035 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
2036 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
2037 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
2038 " 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
2039 " 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
2040 %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
2041 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
2042 \ 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
2043
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2044 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
2045 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
2046 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
2047 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
2048 " \%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
2049 %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
2050 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
2051
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2052 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
2053 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
2054 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
2055 " \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
2056 %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
2057 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
2058
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2059 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
2060 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
2061 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
2062 " \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
2063 %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
2064 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
2065 \ 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
2066
25511
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2067 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
2068 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
2069 " \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
2070 %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
2071 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
2072
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2073 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
2074 " _ matches normally
a6eea433586b patch 8.2.3292: underscore in very magic pattern causes a hang
Bram Moolenaar <Bram@vim.org>
parents: 25457
diff changeset
2075 %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
2076 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
2077
25457
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2078 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
2079 bw!
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2080 endfunc
b95f9cc3d1b9 patch 8.2.3265: smartcase does not work correctly in very magic pattern
Bram Moolenaar <Bram@vim.org>
parents: 25198
diff changeset
2081
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
2082 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
2083 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
2084
054623fc54c5 patch 8.2.3471: crash when using CTRL-T after an empty search pattern
Bram Moolenaar <Bram@vim.org>
parents: 25511
diff changeset
2085 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
2086 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
2087 " 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
2088 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
2089 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
2090 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
2091 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
2092 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
2093
25911
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2094 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
2095 new
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2096 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
2097 /\%.v
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2098 5/
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2099 c
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2100 END
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2101 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
2102 source Xrangesearch
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2103
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2104 bwipe!
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2105 call delete('Xrangesearch')
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2106 endfunc
d6d31972c76d patch 8.2.3489: ml_get error after search with range
Bram Moolenaar <Bram@vim.org>
parents: 25876
diff changeset
2107
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
2108
19308
6fd567c927c0 patch 8.2.0212: missing search/substitute pattern hardly tested
Bram Moolenaar <Bram@vim.org>
parents: 19151
diff changeset
2109 " vim: shiftwidth=2 sts=2 expandtab