Mercurial > vim
annotate src/testdir/test_options.vim @ 33581:403d57b06231 v9.0.2035
patch 9.0.2035: [security] use-after-free with wildmenu
Commit: https://github.com/vim/vim/commit/8f4fb007e4d472b09ff6bed9ffa485e0c3093699
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Tue Oct 17 10:06:56 2023 +0200
patch 9.0.2035: [security] use-after-free with wildmenu
Problem: [security] use-after-free with wildmenu
Solution: properly clean up the wildmenu when exiting
Fix wildchar/wildmenu/pum memory corruption with special wildchar's
Currently, using `wildchar=<Esc>` or `wildchar=<C-\>` can lead to a
memory corruption if using wildmenu+pum, or wrong states if only using
wildmenu. This is due to the code only using one single place inside the
cmdline process loop to perform wild menu clean up (by checking
`end_wildmenu`) but there are other odd situations where the loop could
have exited and we need a post-loop clean up just to be sure. If the
clean up was not done you would have a stale popup menu referring to
invalid memory, or if not using popup menu, incorrect status line (if
`laststatus=0`).
For example, if you hit `<Esc>` two times when it's wildchar, there's a
hard-coded behavior to exit command-line as a failsafe for user, and if
you hit `<C-\><C-\><C-N>` it will also exit command-line, but the clean
up code would not have hit because of specialized `<C-\>` handling.
Fix Ctrl-E / Ctrl-Y to not cancel/accept wildmenu if they are also
used for 'wildchar'/'wildcharm'. Currently they don't behave properly,
and also have potentially memory unsafe behavior as the logic is
currently not accounting for this situation and try to do both.
(Previous patch that addressed this: #11677)
Also, correctly document Escape key behavior (double-hit it to escape)
in wildchar docs as it's previously undocumented.
In addition, block known invalid chars to be set in `wildchar` option,
such as Ctrl-C and `<CR>`. This is just to make it clear to the user
they shouldn't be set, and is not required for this bug fix.
closes: #13361
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 17 Oct 2023 10:15:08 +0200 |
parents | 1f9b1def80c8 |
children | e628d7f03758 |
rev | line source |
---|---|
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1 " Test for options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
3 source shared.vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
4 source check.vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
5 source view_util.vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
6 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
7 func Test_whichwrap() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
8 set whichwrap=b,s |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
9 call assert_equal('b,s', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
10 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
11 set whichwrap+=h,l |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
12 call assert_equal('b,s,h,l', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
13 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
14 set whichwrap+=h,l |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
15 call assert_equal('b,s,h,l', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
16 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
17 set whichwrap+=h,l |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
18 call assert_equal('b,s,h,l', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
19 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
20 set whichwrap=h,h |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
21 call assert_equal('h', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
22 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
23 set whichwrap=h,h,h |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
24 call assert_equal('h', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
25 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
26 " For compatibility with Vim 3.0 and before, number values are also |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
27 " supported for 'whichwrap' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
28 set whichwrap=1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
29 call assert_equal('b', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
30 set whichwrap=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
31 call assert_equal('s', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
32 set whichwrap=4 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
33 call assert_equal('h,l', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
34 set whichwrap=8 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
35 call assert_equal('<,>', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
36 set whichwrap=16 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
37 call assert_equal('[,]', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
38 set whichwrap=31 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
39 call assert_equal('b,s,h,l,<,>,[,]', &whichwrap) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
40 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
41 set whichwrap& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
42 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
43 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
44 func Test_isfname() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
45 " This used to cause Vim to access uninitialized memory. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
46 set isfname= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
47 call assert_equal("~X", expand("~X")) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
48 set isfname& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
49 " Test for setting 'isfname' to an unsupported character |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
50 let save_isfname = &isfname |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
51 call assert_fails('exe $"set isfname+={"\u1234"}"', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
52 call assert_equal(save_isfname, &isfname) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
53 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
54 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
55 " Test for getting the value of 'pastetoggle' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
56 func Test_pastetoggle() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
57 " character with K_SPECIAL byte |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
58 let &pastetoggle = '…' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
59 call assert_equal('…', &pastetoggle) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
60 call assert_equal("\n pastetoggle=…", execute('set pastetoggle?')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
61 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
62 " modified character with K_SPECIAL byte |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
63 let &pastetoggle = '<M-…>' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
64 call assert_equal('<M-…>', &pastetoggle) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
65 call assert_equal("\n pastetoggle=<M-…>", execute('set pastetoggle?')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
66 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
67 " illegal bytes |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
68 let str = ":\x7f:\x80:\x90:\xd0:" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
69 let &pastetoggle = str |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
70 call assert_equal(str, &pastetoggle) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
71 call assert_equal("\n pastetoggle=" .. strtrans(str), execute('set pastetoggle?')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
72 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
73 unlet str |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
74 set pastetoggle& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
75 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
76 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
77 func Test_wildchar() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
78 " Empty 'wildchar' used to access invalid memory. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
79 call assert_fails('set wildchar=', 'E521:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
80 call assert_fails('set wildchar=abc', 'E521:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
81 set wildchar=<Esc> |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
82 let a=execute('set wildchar?') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
83 call assert_equal("\n wildchar=<Esc>", a) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
84 set wildchar=27 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
85 let a=execute('set wildchar?') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
86 call assert_equal("\n wildchar=<Esc>", a) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
87 set wildchar& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
88 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
89 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
90 func Test_wildoptions() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
91 set wildoptions= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
92 set wildoptions+=tagfile |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
93 set wildoptions+=tagfile |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
94 call assert_equal('tagfile', &wildoptions) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
95 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
96 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
97 func Test_options_command() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
98 let caught = 'ok' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
99 try |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
100 options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
101 catch |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
102 let caught = v:throwpoint . "\n" . v:exception |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
103 endtry |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
104 call assert_equal('ok', caught) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
105 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
106 " Check if the option-window is opened horizontally. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
107 wincmd j |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
108 call assert_notequal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
109 wincmd k |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
110 call assert_equal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
111 " close option-window |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
112 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
113 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
114 " Open the option-window vertically. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
115 vert options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
116 " Check if the option-window is opened vertically. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
117 wincmd l |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
118 call assert_notequal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
119 wincmd h |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
120 call assert_equal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
121 " close option-window |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
122 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
123 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
124 " Open the option-window at the top. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
125 set splitbelow |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
126 topleft options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
127 call assert_equal(1, winnr()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
128 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
129 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
130 " Open the option-window at the bottom. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
131 set nosplitbelow |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
132 botright options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
133 call assert_equal(winnr('$'), winnr()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
134 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
135 set splitbelow& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
136 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
137 " Open the option-window in a new tab. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
138 tab options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
139 " Check if the option-window is opened in a tab. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
140 normal gT |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
141 call assert_notequal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
142 normal gt |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
143 call assert_equal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
144 " close option-window |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
145 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
146 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
147 " Open the options window browse |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
148 if has('browse') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
149 browse set |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
150 call assert_equal('option-window', bufname('')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
151 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
152 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
153 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
154 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
155 func Test_path_keep_commas() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
156 " Test that changing 'path' keeps two commas. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
157 set path=foo,,bar |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
158 set path-=bar |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
159 set path+=bar |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
160 call assert_equal('foo,,bar', &path) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
161 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
162 set path& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
163 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
164 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
165 func Test_path_too_long() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
166 exe 'set path=' .. repeat('x', 10000) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
167 call assert_fails('find x', 'E854:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
168 set path& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
169 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
170 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
171 func Test_signcolumn() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
172 CheckFeature signs |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
173 call assert_equal("auto", &signcolumn) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
174 set signcolumn=yes |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
175 set signcolumn=no |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
176 call assert_fails('set signcolumn=nope') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
177 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
178 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
179 func Test_filetype_valid() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
180 set ft=valid_name |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
181 call assert_equal("valid_name", &filetype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
182 set ft=valid-name |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
183 call assert_equal("valid-name", &filetype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
184 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
185 call assert_fails(":set ft=wrong;name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
186 call assert_fails(":set ft=wrong\\\\name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
187 call assert_fails(":set ft=wrong\\|name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
188 call assert_fails(":set ft=wrong/name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
189 call assert_fails(":set ft=wrong\\\nname", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
190 call assert_equal("valid-name", &filetype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
191 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
192 exe "set ft=trunc\x00name" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
193 call assert_equal("trunc", &filetype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
194 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
195 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
196 func Test_syntax_valid() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
197 CheckFeature syntax |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
198 set syn=valid_name |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
199 call assert_equal("valid_name", &syntax) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
200 set syn=valid-name |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
201 call assert_equal("valid-name", &syntax) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
202 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
203 call assert_fails(":set syn=wrong;name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
204 call assert_fails(":set syn=wrong\\\\name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
205 call assert_fails(":set syn=wrong\\|name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
206 call assert_fails(":set syn=wrong/name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
207 call assert_fails(":set syn=wrong\\\nname", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
208 call assert_equal("valid-name", &syntax) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
209 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
210 exe "set syn=trunc\x00name" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
211 call assert_equal("trunc", &syntax) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
212 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
213 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
214 func Test_keymap_valid() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
215 CheckFeature keymap |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
216 call assert_fails(":set kmp=valid_name", "E544:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
217 call assert_fails(":set kmp=valid_name", "valid_name") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
218 call assert_fails(":set kmp=valid-name", "E544:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
219 call assert_fails(":set kmp=valid-name", "valid-name") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
220 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
221 call assert_fails(":set kmp=wrong;name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
222 call assert_fails(":set kmp=wrong\\\\name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
223 call assert_fails(":set kmp=wrong\\|name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
224 call assert_fails(":set kmp=wrong/name", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
225 call assert_fails(":set kmp=wrong\\\nname", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
226 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
227 call assert_fails(":set kmp=trunc\x00name", "E544:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
228 call assert_fails(":set kmp=trunc\x00name", "trunc") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
229 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
230 |
33581
403d57b06231
patch 9.0.2035: [security] use-after-free with wildmenu
Christian Brabandt <cb@256bit.org>
parents:
33521
diff
changeset
|
231 func Test_wildchar_valid() |
403d57b06231
patch 9.0.2035: [security] use-after-free with wildmenu
Christian Brabandt <cb@256bit.org>
parents:
33521
diff
changeset
|
232 call assert_fails("set wildchar=<CR>", "E474:") |
403d57b06231
patch 9.0.2035: [security] use-after-free with wildmenu
Christian Brabandt <cb@256bit.org>
parents:
33521
diff
changeset
|
233 call assert_fails("set wildcharm=<C-C>", "E474:") |
403d57b06231
patch 9.0.2035: [security] use-after-free with wildmenu
Christian Brabandt <cb@256bit.org>
parents:
33521
diff
changeset
|
234 endfunc |
403d57b06231
patch 9.0.2035: [security] use-after-free with wildmenu
Christian Brabandt <cb@256bit.org>
parents:
33521
diff
changeset
|
235 |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
236 func Check_dir_option(name) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
237 " Check that it's possible to set the option. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
238 exe 'set ' . a:name . '=/usr/share/dict/words' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
239 call assert_equal('/usr/share/dict/words', eval('&' . a:name)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
240 exe 'set ' . a:name . '=/usr/share/dict/words,/and/there' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
241 call assert_equal('/usr/share/dict/words,/and/there', eval('&' . a:name)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
242 exe 'set ' . a:name . '=/usr/share/dict\ words' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
243 call assert_equal('/usr/share/dict words', eval('&' . a:name)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
244 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
245 " Check rejecting weird characters. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
246 call assert_fails("set " . a:name . "=/not&there", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
247 call assert_fails("set " . a:name . "=/not>there", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
248 call assert_fails("set " . a:name . "=/not.*there", "E474:") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
249 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
250 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
251 func Test_cinkeys() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
252 " This used to cause invalid memory access |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
253 set cindent cinkeys=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
254 norm a |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
255 set cindent& cinkeys& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
256 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
257 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
258 func Test_dictionary() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
259 call Check_dir_option('dictionary') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
260 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
261 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
262 func Test_thesaurus() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
263 call Check_dir_option('thesaurus') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
264 endfun |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
265 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
266 func Test_complete() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
267 " Trailing single backslash used to cause invalid memory access. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
268 set complete=s\ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
269 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
270 call feedkeys("i\<C-N>\<Esc>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
271 bwipe! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
272 call assert_fails('set complete=ix', 'E535:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
273 set complete& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
274 endfun |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
275 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
276 func Test_set_completion() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
277 call feedkeys(":set di\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
278 call assert_equal('"set dictionary diff diffexpr diffopt digraph directory display', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
279 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
280 call feedkeys(":setlocal di\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
281 call assert_equal('"setlocal dictionary diff diffexpr diffopt digraph directory display', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
282 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
283 call feedkeys(":setglobal di\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
284 call assert_equal('"setglobal dictionary diff diffexpr diffopt digraph directory display', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
285 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
286 " Expand boolean options. When doing :set no<Tab> Vim prefixes the option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
287 " names with "no". |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
288 call feedkeys(":set nodi\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
289 call assert_equal('"set nodiff nodigraph', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
290 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
291 call feedkeys(":set invdi\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
292 call assert_equal('"set invdiff invdigraph', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
293 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
294 " Expanding "set noinv" does nothing. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
295 call feedkeys(":set noinv\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
296 call assert_equal('"set noinv', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
297 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
298 " Expand abbreviation of options. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
299 call feedkeys(":set ts\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
300 call assert_equal('"set tabstop thesaurus thesaurusfunc ttyscroll', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
301 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
302 " Expand current value |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
303 call feedkeys(":set suffixes=\<C-A>\<C-B>\"\<CR>", 'tx') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
304 call assert_equal('"set suffixes=.bak,~,.o,.h,.info,.swp,.obj', @:) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
305 |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
306 call feedkeys(":set suffixes:\<C-A>\<C-B>\"\<CR>", 'tx') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
307 call assert_equal('"set suffixes:.bak,~,.o,.h,.info,.swp,.obj', @:) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
308 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
309 " Expand key codes. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
310 call feedkeys(":set <H\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
311 call assert_equal('"set <Help> <Home>', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
312 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
313 " Expand terminal options. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
314 call feedkeys(":set t_A\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
315 call assert_equal('"set t_AB t_AF t_AU t_AL', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
316 call assert_fails('call feedkeys(":set <t_afoo>=\<C-A>\<CR>", "xt")', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
317 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
318 " Expand directories. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
319 call feedkeys(":set cdpath=./\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
320 call assert_match(' ./samples/ ', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
321 call assert_notmatch(' ./summarize.vim ', @:) |
33521
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
322 set cdpath& |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
323 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
324 " Expand files and directories. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
325 call feedkeys(":set tags=./\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
326 call assert_match(' ./samples/.* ./summarize.vim', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
327 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
328 call feedkeys(":set tags=./\\\\ dif\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
329 call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:) |
33521
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
330 |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
331 " Expand files with spaces/commas in them. Make sure we delimit correctly. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
332 " |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
333 " 'tags' allow for for spaces/commas to both act as delimiters, with actual |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
334 " spaces requiring double escape, and commas need a single escape. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
335 " 'dictionary' is a normal comma-separated option where only commas act as |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
336 " delimiters, and both space/comma need one single escape. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
337 " 'makeprg' is a non-comma-separated option. Commas don't need escape. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
338 defer delete('Xfoo Xspace.txt') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
339 defer delete('Xsp_dummy') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
340 defer delete('Xbar,Xcomma.txt') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
341 defer delete('Xcom_dummy') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
342 call writefile([], 'Xfoo Xspace.txt') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
343 call writefile([], 'Xsp_dummy') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
344 call writefile([], 'Xbar,Xcomma.txt') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
345 call writefile([], 'Xcom_dummy') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
346 |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
347 call feedkeys(':set tags=./Xfoo\ Xsp' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
348 call assert_equal('"set tags=./Xfoo\ Xsp_dummy', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
349 call feedkeys(':set tags=./Xfoo\\\ Xsp' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
350 call assert_equal('"set tags=./Xfoo\\\ Xspace.txt', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
351 call feedkeys(':set dictionary=./Xfoo\ Xsp' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
352 call assert_equal('"set dictionary=./Xfoo\ Xspace.txt', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
353 |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
354 call feedkeys(':set dictionary=./Xbar,Xcom' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
355 call assert_equal('"set dictionary=./Xbar,Xcom_dummy', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
356 if has('win32') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
357 " In Windows, '\,' is literal, see `:help filename-backslash`, so this |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
358 " means we treat it as one file name. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
359 call feedkeys(':set dictionary=Xbar\,Xcom' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
360 call assert_equal('"set dictionary=Xbar\,Xcomma.txt', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
361 else |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
362 " In other platforms, '\,' simply escape to ',', and indicate a delimiter |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
363 " to split into a separate file name. You need '\\,' to escape the comma |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
364 " as part of the file name. |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
365 call feedkeys(':set dictionary=Xbar\,Xcom' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
366 call assert_equal('"set dictionary=Xbar\,Xcom_dummy', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
367 |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
368 call feedkeys(':set dictionary=Xbar\\,Xcom' .. "\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
369 call assert_equal('"set dictionary=Xbar\\,Xcomma.txt', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
370 endif |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
371 call feedkeys(":set makeprg=./Xbar,Xcom\<C-A>\<C-B>\"\<CR>", 'tx') |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
372 call assert_equal('"set makeprg=./Xbar,Xcomma.txt', @:) |
1f9b1def80c8
patch 9.0.2009: cmdline-completion for comma-separated options wrong
Christian Brabandt <cb@256bit.org>
parents:
33430
diff
changeset
|
373 set tags& dictionary& makeprg& |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
374 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
375 " Expanding the option names |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
376 call feedkeys(":set \<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
377 call assert_equal('"set all', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
378 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
379 " Expanding a second set of option names |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
380 call feedkeys(":set wrapscan \<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
381 call assert_equal('"set wrapscan all', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
382 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
383 " Expanding a special keycode |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
384 call feedkeys(":set <Home>\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
385 call assert_equal('"set <Home>', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
386 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
387 " Expanding an invalid special keycode |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
388 call feedkeys(":set <abcd>\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
389 call assert_equal("\"set <abcd>\<Tab>", @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
390 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
391 " Expanding a terminal keycode |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
392 call feedkeys(":set t_AB\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
393 call assert_equal("\"set t_AB", @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
394 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
395 " Expanding an invalid option name |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
396 call feedkeys(":set abcde=\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
397 call assert_equal("\"set abcde=\<Tab>", @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
398 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
399 " Expanding after a = for a boolean option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
400 call feedkeys(":set wrapscan=\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
401 call assert_equal("\"set wrapscan=\<Tab>", @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
402 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
403 " Expanding a numeric option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
404 call feedkeys(":set tabstop+=\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
405 call assert_equal("\"set tabstop+=" .. &tabstop, @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
406 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
407 " Expanding a non-boolean option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
408 call feedkeys(":set invtabstop=\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
409 call assert_equal("\"set invtabstop=", @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
410 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
411 " Expand options for 'spellsuggest' |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
412 call feedkeys(":set spellsuggest=file:test_options.v\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
413 call assert_equal("\"set spellsuggest=file:test_options.vim", @:) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
414 call feedkeys(":set spellsuggest=best,file:test_options.v\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
415 call assert_equal("\"set spellsuggest=best,file:test_options.vim", @:) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
416 |
33420
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
417 " Expanding value for 'key' is disallowed |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
418 if exists('+key') |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
419 set key=abcd |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
420 call feedkeys(":set key=\<Tab>\<C-B>\"\<CR>", 'xt') |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
421 call assert_equal('"set key=', @:) |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
422 call feedkeys(":set key-=\<Tab>\<C-B>\"\<CR>", 'xt') |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
423 call assert_equal('"set key-=', @:) |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
424 set key= |
aa7cd2253130
patch 9.0.1968: cmdline completion should consider key option
Christian Brabandt <cb@256bit.org>
parents:
33406
diff
changeset
|
425 endif |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
426 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
427 " Expand values for 'filetype' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
428 call feedkeys(":set filetype=sshdconfi\<Tab>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
429 call assert_equal('"set filetype=sshdconfig', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
430 call feedkeys(":set filetype=a\<C-A>\<C-B>\"\<CR>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
431 call assert_equal('"set filetype=' .. getcompletion('a*', 'filetype')->join(), @:) |
33012
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
432 |
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
433 " Expand values for 'syntax' |
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
434 call feedkeys(":set syntax=sshdconfi\<Tab>\<C-B>\"\<CR>", 'xt') |
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
435 call assert_equal('"set syntax=sshdconfig', @:) |
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
436 call feedkeys(":set syntax=a\<C-A>\<C-B>\"\<CR>", 'xt') |
859e539d686b
patch 9.0.1798: The 'syntax' option has no completion.
Christian Brabandt <cb@256bit.org>
parents:
32971
diff
changeset
|
437 call assert_equal('"set syntax=' .. getcompletion('a*', 'syntax')->join(), @:) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
438 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
439 |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
440 " Test handling of expanding individual string option values |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
441 func Test_set_completion_string_values() |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
442 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
443 " Test basic enum string options that have well-defined enum names |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
444 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
445 |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
446 call assert_equal(['lastline', 'truncate', 'uhex'], getcompletion('set display=', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
447 call assert_equal(['truncate'], getcompletion('set display=t', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
448 call assert_equal(['uhex'], getcompletion('set display=*ex*', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
449 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
450 " Test that if a value is set, it will populate the results, but only if |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
451 " typed value is empty. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
452 set display=uhex,lastline |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
453 call assert_equal(['uhex,lastline', 'lastline', 'truncate', 'uhex'], getcompletion('set display=', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
454 call assert_equal(['uhex'], getcompletion('set display=u', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
455 " If the set value is part of the enum list, it will show as the first |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
456 " result with no duplicate. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
457 set display=uhex |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
458 call assert_equal(['uhex', 'lastline', 'truncate'], getcompletion('set display=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
459 " If empty value, will just show the normal list without an empty item |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
460 set display= |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
461 call assert_equal(['lastline', 'truncate', 'uhex'], getcompletion('set display=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
462 " Test escaping of the values |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
463 call assert_equal('vert:\|,fold:-,eob:~,lastline:@', getcompletion('set fillchars=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
464 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
465 " Test comma-separated lists will expand after a comma. |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
466 call assert_equal(['uhex'], getcompletion('set display=truncate,*ex*', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
467 " Also test the positioning of the expansion is correct |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
468 call feedkeys(":set display=truncate,l\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
469 call assert_equal('"set display=truncate,lastline', @:) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
470 set display& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
471 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
472 " Test single-value options will not expand after a comma |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
473 call assert_equal([], getcompletion('set ambw=single,', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
474 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
475 " Test the other simple options to make sure they have basic auto-complete, |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
476 " but don't exhaustively validate their results. |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
477 call assert_equal('single', getcompletion('set ambw=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
478 call assert_match('light\|dark', getcompletion('set bg=', 'cmdline')[1]) |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
479 call assert_equal('indent', getcompletion('set backspace=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
480 call assert_equal('yes', getcompletion('set backupcopy=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
481 call assert_equal('backspace', getcompletion('set belloff=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
482 call assert_equal('min:', getcompletion('set briopt=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
483 if exists('+browsedir') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
484 call assert_equal('current', getcompletion('set browsedir=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
485 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
486 call assert_equal('unload', getcompletion('set bufhidden=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
487 call assert_equal('nowrite', getcompletion('set buftype=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
488 call assert_equal('internal', getcompletion('set casemap=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
489 if exists('+clipboard') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
490 call assert_match('unnamed', getcompletion('set clipboard=', 'cmdline')[1]) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
491 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
492 call assert_equal('.', getcompletion('set complete=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
493 call assert_equal('menu', getcompletion('set completeopt=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
494 if exists('+completeslash') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
495 call assert_equal('backslash', getcompletion('set completeslash=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
496 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
497 if exists('+cryptmethod') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
498 call assert_equal('zip', getcompletion('set cryptmethod=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
499 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
500 if exists('+cursorlineopt') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
501 call assert_equal('line', getcompletion('set cursorlineopt=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
502 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
503 call assert_equal('throw', getcompletion('set debug=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
504 call assert_equal('ver', getcompletion('set eadirection=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
505 call assert_equal('mac', getcompletion('set fileformat=', 'cmdline')[2]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
506 if exists('+foldclose') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
507 call assert_equal('all', getcompletion('set foldclose=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
508 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
509 if exists('+foldmethod') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
510 call assert_equal('expr', getcompletion('set foldmethod=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
511 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
512 if exists('+foldopen') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
513 call assert_equal('all', getcompletion('set foldopen=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
514 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
515 call assert_equal('stack', getcompletion('set jumpoptions=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
516 call assert_equal('stopsel', getcompletion('set keymodel=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
517 call assert_equal('expr:1', getcompletion('set lispoptions=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
518 call assert_match('popup', getcompletion('set mousemodel=', 'cmdline')[2]) |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
519 call assert_equal('bin', getcompletion('set nrformats=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
520 if exists('+rightleftcmd') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
521 call assert_equal('search', getcompletion('set rightleftcmd=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
522 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
523 call assert_equal('ver', getcompletion('set scrollopt=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
524 call assert_equal('exclusive', getcompletion('set selection=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
525 call assert_equal('key', getcompletion('set selectmode=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
526 if exists('+ssop') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
527 call assert_equal('buffers', getcompletion('set ssop=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
528 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
529 call assert_equal('statusline', getcompletion('set showcmdloc=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
530 if exists('+signcolumn') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
531 call assert_equal('yes', getcompletion('set signcolumn=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
532 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
533 if exists('+spelloptions') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
534 call assert_equal('camel', getcompletion('set spelloptions=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
535 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
536 if exists('+spellsuggest') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
537 call assert_equal('best', getcompletion('set spellsuggest+=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
538 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
539 call assert_equal('screen', getcompletion('set splitkeep=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
540 call assert_equal('sync', getcompletion('set swapsync=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
541 call assert_equal('usetab', getcompletion('set switchbuf=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
542 call assert_equal('ignore', getcompletion('set tagcase=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
543 if exists('+termwintype') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
544 call assert_equal('conpty', getcompletion('set termwintype=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
545 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
546 if exists('+toolbar') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
547 call assert_equal('text', getcompletion('set toolbar=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
548 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
549 if exists('+tbis') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
550 call assert_equal('medium', getcompletion('set tbis=', 'cmdline')[2]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
551 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
552 if exists('+ttymouse') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
553 set ttymouse= |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
554 call assert_equal('xterm2', getcompletion('set ttymouse=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
555 set ttymouse& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
556 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
557 call assert_equal('insert', getcompletion('set virtualedit=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
558 call assert_equal('longest', getcompletion('set wildmode=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
559 call assert_equal('full', getcompletion('set wildmode=list,longest:', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
560 call assert_equal('tagfile', getcompletion('set wildoptions=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
561 if exists('+winaltkeys') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
562 call assert_equal('yes', getcompletion('set winaltkeys=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
563 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
564 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
565 " Other string options that queries the system rather than fixed enum names |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
566 call assert_equal(['all', 'BufAdd'], getcompletion('set eventignore=', 'cmdline')[0:1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
567 call assert_equal('latin1', getcompletion('set fileencodings=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
568 call assert_equal('top', getcompletion('set printoptions=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
569 call assert_equal('SpecialKey', getcompletion('set wincolor=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
570 |
33406
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
571 call assert_equal('eol', getcompletion('set listchars+=', 'cmdline')[0]) |
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
572 call assert_equal(['multispace', 'leadmultispace'], getcompletion('set listchars+=', 'cmdline')[-2:]) |
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
573 call assert_equal('eol', getcompletion('setl listchars+=', 'cmdline')[0]) |
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
574 call assert_equal(['multispace', 'leadmultispace'], getcompletion('setl listchars+=', 'cmdline')[-2:]) |
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
575 call assert_equal('stl', getcompletion('set fillchars+=', 'cmdline')[0]) |
0909ef6aac3d
patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Christian Brabandt <cb@256bit.org>
parents:
33399
diff
changeset
|
576 call assert_equal('stl', getcompletion('setl fillchars+=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
577 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
578 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
579 " Unique string options below |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
580 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
581 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
582 " keyprotocol: only auto-complete when after ':' with known protocol types |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
583 call assert_equal([&keyprotocol], getcompletion('set keyprotocol=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
584 call feedkeys(":set keyprotocol+=someterm:m\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
585 call assert_equal('"set keyprotocol+=someterm:mok2', @:) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
586 set keyprotocol& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
587 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
588 " previewpopup / completepopup |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
589 call assert_equal('height:', getcompletion('set previewpopup=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
590 call assert_equal('EndOfBuffer', getcompletion('set previewpopup=highlight:End*Buffer', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
591 call feedkeys(":set previewpopup+=border:\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
592 call assert_equal('"set previewpopup+=border:on', @:) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
593 call feedkeys(":set completepopup=height:10,align:\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
594 call assert_equal('"set completepopup=height:10,align:item', @:) |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
595 call assert_equal([], getcompletion('set completepopup=bogusname:', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
596 set previewpopup& completepopup& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
597 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
598 " diffopt: special handling of algorithm:<alg_list> |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
599 call assert_equal('filler', getcompletion('set diffopt+=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
600 call assert_equal([], getcompletion('set diffopt+=iblank,foldcolumn:', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
601 call assert_equal('patience', getcompletion('set diffopt+=iblank,algorithm:pat*', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
602 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
603 " highlight: special parsing, including auto-completing highlight groups |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
604 " after ':' |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
605 call assert_equal([&hl, '8'], getcompletion('set hl=', 'cmdline')[0:1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
606 call assert_equal('8', getcompletion('set hl+=', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
607 call assert_equal(['8:', '8b', '8i'], getcompletion('set hl+=8', 'cmdline')[0:2]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
608 call assert_equal('8bi', getcompletion('set hl+=8b', 'cmdline')[0]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
609 call assert_equal('NonText', getcompletion('set hl+=8:No*ext', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
610 " If all the display modes are used up we should be suggesting nothing. Make |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
611 " a hl typed option with all the modes which will look like '8bi-nrsuc2d=t', |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
612 " and make sure nothing is suggested from that. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
613 let hl_display_modes = join( |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
614 \ filter(map(getcompletion('set hl+=8', 'cmdline'), |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
615 \ {idx, val -> val[1]}), |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
616 \ {idx, val -> val != ':'}), |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
617 \ '') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
618 call assert_equal([], getcompletion('set hl+=8'..hl_display_modes, 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
619 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
620 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
621 " Test flag lists |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
622 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
623 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
624 " Test set=. Show the original value if nothing is typed after '='. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
625 " Otherwise, the list should avoid showing what's already typed. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
626 set mouse=v |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
627 call assert_equal(['v','a','n','i','c','h','r'], getcompletion('set mouse=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
628 set mouse=nvi |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
629 call assert_equal(['nvi','a','n','v','i','c','h','r'], getcompletion('set mouse=', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
630 call assert_equal(['a','v','i','c','r'], getcompletion('set mouse=hn', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
631 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
632 " Test set+=. Never show original value, and it also tries to avoid listing |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
633 " flags that's already in the option value. |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
634 call assert_equal(['a','c','h','r'], getcompletion('set mouse+=', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
635 call assert_equal(['a','c','r'], getcompletion('set mouse+=hn', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
636 call assert_equal([], getcompletion('set mouse+=acrhn', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
637 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
638 " Test that the position of the expansion is correct (even if there are |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
639 " additional values after the current cursor) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
640 call feedkeys(":set mouse=hn\<Left>\<Tab>\<C-B>\"\<CR>", 'xt') |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
641 call assert_equal('"set mouse=han', @:) |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
642 set mouse& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
643 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
644 " Test that other flag list options have auto-complete, but don't |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
645 " exhaustively validate their results. |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
646 if exists('+concealcursor') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
647 call assert_equal('n', getcompletion('set cocu=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
648 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
649 call assert_equal('a', getcompletion('set cpo=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
650 call assert_equal('t', getcompletion('set fo=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
651 if exists('+guioptions') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
652 call assert_equal('!', getcompletion('set go=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
653 endif |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
654 call assert_equal('r', getcompletion('set shortmess=', 'cmdline')[1]) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
655 call assert_equal('b', getcompletion('set whichwrap=', 'cmdline')[1]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
656 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
657 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
658 "Test set-= |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
659 " |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
660 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
661 " Normal single-value option just shows the existing value |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
662 set ambiwidth=double |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
663 call assert_equal(['double'], getcompletion('set ambw-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
664 set ambiwidth& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
665 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
666 " Works on numbers and term options as well |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
667 call assert_equal([string(&laststatus)], getcompletion('set laststatus-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
668 set t_Ce=testCe |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
669 call assert_equal(['testCe'], getcompletion('set t_Ce-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
670 set t_Ce& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
671 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
672 " Comma-separated lists should present each option |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
673 set diffopt=context:123,,,,,iblank,iwhiteall |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
674 call assert_equal(['context:123', 'iblank', 'iwhiteall'], getcompletion('set diffopt-=', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
675 call assert_equal(['context:123', 'iblank'], getcompletion('set diffopt-=*n*', 'cmdline')) |
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
676 call assert_equal(['iblank', 'iwhiteall'], getcompletion('set diffopt-=i', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
677 " Don't present more than one option as it doesn't make sense in set-= |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
678 call assert_equal([], getcompletion('set diffopt-=iblank,', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
679 " Test empty option |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
680 set diffopt= |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
681 call assert_equal([], getcompletion('set diffopt-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
682 set diffopt& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
683 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
684 " Test escaping output |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
685 call assert_equal('vert:\|', getcompletion('set fillchars-=', 'cmdline')[0]) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
686 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
687 " Test files with commas in name are being parsed and escaped properly |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
688 set path=has\\\ space,file\\,with\\,comma,normal_file |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
689 if exists('+completeslash') |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
690 call assert_equal(['has\\\ space', 'file\,with\,comma', 'normal_file'], getcompletion('set path-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
691 else |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
692 call assert_equal(['has\\\ space', 'file\\,with\\,comma', 'normal_file'], getcompletion('set path-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
693 endif |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
694 set path& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
695 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
696 " Flag list should present orig value, then individual flags |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
697 set mouse=v |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
698 call assert_equal(['v'], getcompletion('set mouse-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
699 set mouse=avn |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
700 call assert_equal(['avn','a','v','n'], getcompletion('set mouse-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
701 " Don't auto-complete when we have at least one flags already |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
702 call assert_equal([], getcompletion('set mouse-=n', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
703 " Test empty option |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
704 set mouse= |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
705 call assert_equal([], getcompletion('set mouse-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
706 set mouse& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
707 |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
708 " 'whichwrap' is an odd case where it's both flag list and comma-separated |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
709 set ww=b,h |
33430
18f4a04384f3
patch 9.0.1973: Clean up cmdline option completion code
Christian Brabandt <cb@256bit.org>
parents:
33420
diff
changeset
|
710 call assert_equal(['b','h'], getcompletion('set ww-=', 'cmdline')) |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
711 set ww& |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
712 endfunc |
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
713 |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
714 func Test_set_option_errors() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
715 call assert_fails('set scroll=-1', 'E49:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
716 call assert_fails('set backupcopy=', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
717 call assert_fails('set regexpengine=3', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
718 call assert_fails('set history=10001', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
719 call assert_fails('set numberwidth=21', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
720 call assert_fails('set colorcolumn=-a', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
721 call assert_fails('set colorcolumn=a', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
722 call assert_fails('set colorcolumn=1,', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
723 call assert_fails('set colorcolumn=1;', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
724 call assert_fails('set cmdheight=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
725 call assert_fails('set cmdwinheight=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
726 if has('conceal') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
727 call assert_fails('set conceallevel=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
728 call assert_fails('set conceallevel=4', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
729 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
730 call assert_fails('set helpheight=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
731 call assert_fails('set history=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
732 call assert_fails('set report=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
733 call assert_fails('set shiftwidth=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
734 call assert_fails('set sidescroll=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
735 call assert_fails('set tabstop=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
736 call assert_fails('set tabstop=10000', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
737 call assert_fails('let &tabstop = 10000', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
738 call assert_fails('set tabstop=5500000000', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
739 call assert_fails('set textwidth=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
740 call assert_fails('set timeoutlen=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
741 call assert_fails('set updatecount=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
742 call assert_fails('set updatetime=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
743 call assert_fails('set winheight=-1', 'E487:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
744 call assert_fails('set tabstop!', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
745 call assert_fails('set xxx', 'E518:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
746 call assert_fails('set beautify?', 'E519:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
747 call assert_fails('set undolevels=x', 'E521:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
748 call assert_fails('set tabstop=', 'E521:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
749 call assert_fails('set comments=-', 'E524:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
750 call assert_fails('set comments=a', 'E525:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
751 call assert_fails('set foldmarker=x', 'E536:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
752 call assert_fails('set commentstring=x', 'E537:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
753 call assert_fails('let &commentstring = "x"', 'E537:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
754 call assert_fails('set complete=x', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
755 call assert_fails('set rulerformat=%-', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
756 call assert_fails('set rulerformat=%(', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
757 call assert_fails('set rulerformat=%15(%%', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
758 call assert_fails('set statusline=%$', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
759 call assert_fails('set statusline=%{', 'E540:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
760 call assert_fails('set statusline=%{%', 'E540:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
761 call assert_fails('set statusline=%{%}', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
762 call assert_fails('set statusline=%(', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
763 call assert_fails('set statusline=%)', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
764 call assert_fails('set tabline=%$', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
765 call assert_fails('set tabline=%{', 'E540:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
766 call assert_fails('set tabline=%{%', 'E540:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
767 call assert_fails('set tabline=%{%}', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
768 call assert_fails('set tabline=%(', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
769 call assert_fails('set tabline=%)', 'E542:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
770 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
771 if has('cursorshape') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
772 " This invalid value for 'guicursor' used to cause Vim to crash. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
773 call assert_fails('set guicursor=i-ci,r-cr:h', 'E545:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
774 call assert_fails('set guicursor=i-ci', 'E545:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
775 call assert_fails('set guicursor=x', 'E545:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
776 call assert_fails('set guicursor=x:', 'E546:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
777 call assert_fails('set guicursor=r-cr:horx', 'E548:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
778 call assert_fails('set guicursor=r-cr:hor0', 'E549:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
779 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
780 if has('mouseshape') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
781 call assert_fails('se mouseshape=i-r:x', 'E547:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
782 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
783 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
784 " Test for 'backupext' and 'patchmode' set to the same value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
785 set backupext=.bak |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
786 set patchmode=.patch |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
787 call assert_fails('set patchmode=.bak', 'E589:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
788 call assert_equal('.patch', &patchmode) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
789 call assert_fails('set backupext=.patch', 'E589:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
790 call assert_equal('.bak', &backupext) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
791 set backupext& patchmode& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
792 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
793 call assert_fails('set winminheight=10 winheight=9', 'E591:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
794 set winminheight& winheight& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
795 set winheight=10 winminheight=10 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
796 call assert_fails('set winheight=9', 'E591:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
797 set winminheight& winheight& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
798 call assert_fails('set winminwidth=10 winwidth=9', 'E592:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
799 set winminwidth& winwidth& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
800 call assert_fails('set winwidth=9 winminwidth=10', 'E592:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
801 set winwidth& winminwidth& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
802 call assert_fails("set showbreak=\x01", 'E595:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
803 call assert_fails('set t_foo=', 'E846:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
804 call assert_fails('set tabstop??', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
805 call assert_fails('set wrapscan!!', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
806 call assert_fails('set tabstop&&', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
807 call assert_fails('set wrapscan<<', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
808 call assert_fails('set wrapscan=1', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
809 call assert_fails('set autoindent@', 'E488:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
810 call assert_fails('set wildchar=<abc>', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
811 call assert_fails('set cmdheight=1a', 'E521:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
812 call assert_fails('set invcmdheight', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
813 if has('python') || has('python3') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
814 call assert_fails('set pyxversion=6', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
815 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
816 call assert_fails("let &tabstop='ab'", ['E521:', 'E521:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
817 call assert_fails('set spellcapcheck=%\\(', 'E54:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
818 call assert_fails('set sessionoptions=curdir,sesdir', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
819 call assert_fails('set foldmarker={{{,', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
820 call assert_fails('set sessionoptions=sesdir,curdir', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
821 setlocal listchars=trail:· |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
822 call assert_fails('set ambiwidth=double', 'E834:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
823 setlocal listchars=trail:- |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
824 setglobal listchars=trail:· |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
825 call assert_fails('set ambiwidth=double', 'E834:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
826 set listchars& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
827 setlocal fillchars=stl:· |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
828 call assert_fails('set ambiwidth=double', 'E835:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
829 setlocal fillchars=stl:- |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
830 setglobal fillchars=stl:· |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
831 call assert_fails('set ambiwidth=double', 'E835:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
832 set fillchars& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
833 call assert_fails('set fileencoding=latin1,utf-8', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
834 set nomodifiable |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
835 call assert_fails('set fileencoding=latin1', 'E21:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
836 set modifiable& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
837 call assert_fails('set t_#-&', 'E522:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
838 call assert_fails('let &formatoptions = "?"', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
839 call assert_fails('call setbufvar("", "&formatoptions", "?")', 'E539:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
840 call assert_fails('call setwinvar(0, "&scrolloff", [])', ['E745:', 'E745:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
841 call assert_fails('call setwinvar(0, "&list", [])', ['E745:', 'E745:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
842 call assert_fails('call setwinvar(0, "&listchars", [])', ['E730:', 'E730:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
843 call assert_fails('call setwinvar(0, "&nosuchoption", 0)', ['E355:', 'E355:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
844 call assert_fails('call setwinvar(0, "&nosuchoption", "")', ['E355:', 'E355:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
845 call assert_fails('call setwinvar(0, "&nosuchoption", [])', ['E355:', 'E355:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
846 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
847 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
848 func Test_set_encoding() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
849 let save_encoding = &encoding |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
850 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
851 set enc=iso8859-1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
852 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
853 set enc=iso8859_1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
854 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
855 set enc=iso-8859-1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
856 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
857 set enc=iso_8859_1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
858 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
859 set enc=iso88591 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
860 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
861 set enc=iso8859 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
862 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
863 set enc=iso-8859 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
864 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
865 set enc=iso_8859 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
866 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
867 call assert_fails('set enc=iso8858', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
868 call assert_equal('latin1', &enc) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
869 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
870 let &encoding = save_encoding |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
871 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
872 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
873 func CheckWasSet(name) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
874 let verb_cm = execute('verbose set ' .. a:name .. '?') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
875 call assert_match('Last set from.*test_options.vim', verb_cm) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
876 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
877 func CheckWasNotSet(name) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
878 let verb_cm = execute('verbose set ' .. a:name .. '?') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
879 call assert_notmatch('Last set from', verb_cm) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
880 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
881 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
882 " Must be executed before other tests that set 'term'. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
883 func Test_000_term_option_verbose() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
884 CheckNotGui |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
885 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
886 call CheckWasNotSet('t_cm') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
887 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
888 let term_save = &term |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
889 set term=ansi |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
890 call CheckWasSet('t_cm') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
891 let &term = term_save |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
892 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
893 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
894 func Test_copy_context() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
895 setlocal list |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
896 call CheckWasSet('list') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
897 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
898 call CheckWasSet('list') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
899 quit |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
900 setlocal nolist |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
901 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
902 set ai |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
903 call CheckWasSet('ai') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
904 set filetype=perl |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
905 call CheckWasSet('filetype') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
906 set fo=tcroq |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
907 call CheckWasSet('fo') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
908 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
909 split Xsomebuf |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
910 call CheckWasSet('ai') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
911 call CheckWasNotSet('filetype') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
912 call CheckWasSet('fo') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
913 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
914 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
915 func Test_set_ttytype() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
916 CheckUnix |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
917 CheckNotGui |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
918 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
919 " Setting 'ttytype' used to cause a double-free when exiting vim and |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
920 " when vim is compiled with -DEXITFREE. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
921 set ttytype=ansi |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
922 call assert_equal('ansi', &ttytype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
923 call assert_equal(&ttytype, &term) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
924 set ttytype=xterm |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
925 call assert_equal('xterm', &ttytype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
926 call assert_equal(&ttytype, &term) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
927 try |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
928 set ttytype= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
929 call assert_report('set ttytype= did not fail') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
930 catch /E529/ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
931 endtry |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
932 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
933 " Some systems accept any terminal name and return dumb settings, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
934 " check for failure of finding the entry and for missing 'cm' entry. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
935 try |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
936 set ttytype=xxx |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
937 call assert_report('set ttytype=xxx did not fail') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
938 catch /E522\|E437/ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
939 endtry |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
940 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
941 set ttytype& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
942 call assert_equal(&ttytype, &term) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
943 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
944 if has('gui') && !has('gui_running') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
945 call assert_fails('set term=gui', 'E531:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
946 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
947 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
948 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
949 func Test_set_all() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
950 set tw=75 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
951 set iskeyword=a-z,A-Z |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
952 set nosplitbelow |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
953 let out = execute('set all') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
954 call assert_match('textwidth=75', out) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
955 call assert_match('iskeyword=a-z,A-Z', out) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
956 call assert_match('nosplitbelow', out) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
957 set tw& iskeyword& splitbelow& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
958 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
959 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
960 func Test_set_one_column() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
961 let out_mult = execute('set all')->split("\n") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
962 let out_one = execute('set! all')->split("\n") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
963 call assert_true(len(out_mult) < len(out_one)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
964 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
965 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
966 func Test_set_values() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
967 " opt_test.vim is generated from ../optiondefs.h using gen_opt_test.vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
968 if filereadable('opt_test.vim') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
969 source opt_test.vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
970 else |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
971 throw 'Skipped: opt_test.vim does not exist' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
972 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
973 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
974 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
975 func Test_renderoptions() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
976 " Only do this for Windows Vista and later, fails on Windows XP and earlier. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
977 " Doesn't hurt to do this on a non-Windows system. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
978 if windowsversion() !~ '^[345]\.' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
979 set renderoptions=type:directx |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
980 set rop=type:directx |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
981 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
982 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
983 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
984 func ResetIndentexpr() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
985 set indentexpr= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
986 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
987 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
988 func Test_set_indentexpr() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
989 " this was causing usage of freed memory |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
990 set indentexpr=ResetIndentexpr() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
991 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
992 call feedkeys("i\<c-f>", 'x') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
993 call assert_equal('', &indentexpr) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
994 bwipe! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
995 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
996 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
997 func Test_backupskip() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
998 " Option 'backupskip' may contain several comma-separated path |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
999 " specifications if one or more of the environment variables TMPDIR, TMP, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1000 " or TEMP is defined. To simplify testing, convert the string value into a |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1001 " list. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1002 let bsklist = split(&bsk, ',') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1003 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1004 if has("mac") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1005 let found = (index(bsklist, '/private/tmp/*') >= 0) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1006 call assert_true(found, '/private/tmp not in option bsk: ' . &bsk) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1007 elseif has("unix") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1008 let found = (index(bsklist, '/tmp/*') >= 0) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1009 call assert_true(found, '/tmp not in option bsk: ' . &bsk) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1010 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1011 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1012 " If our test platform is Windows, the path(s) in option bsk will use |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1013 " backslash for the path separator and the components could be in short |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1014 " (8.3) format. As such, we need to replace the backslashes with forward |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1015 " slashes and convert the path components to long format. The expand() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1016 " function will do this but it cannot handle comma-separated paths. This is |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1017 " why bsk was converted from a string into a list of strings above. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1018 " |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1019 " One final complication is that the wildcard "/*" is at the end of each |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1020 " path and so expand() might return a list of matching files. To prevent |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1021 " this, we need to remove the wildcard before calling expand() and then |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1022 " append it afterwards. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1023 if has('win32') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1024 let item_nbr = 0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1025 while item_nbr < len(bsklist) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1026 let path_spec = bsklist[item_nbr] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1027 let path_spec = strcharpart(path_spec, 0, strlen(path_spec)-2) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1028 let path_spec = substitute(expand(path_spec), '\\', '/', 'g') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1029 let bsklist[item_nbr] = path_spec . '/*' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1030 let item_nbr += 1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1031 endwhile |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1032 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1033 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1034 " Option bsk will also include these environment variables if defined. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1035 " If they're defined, verify they appear in the option value. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1036 for var in ['$TMPDIR', '$TMP', '$TEMP'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1037 if exists(var) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1038 let varvalue = substitute(expand(var), '\\', '/', 'g') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1039 let varvalue = substitute(varvalue, '/$', '', '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1040 let varvalue .= '/*' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1041 let found = (index(bsklist, varvalue) >= 0) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1042 call assert_true(found, var . ' (' . varvalue . ') not in option bsk: ' . &bsk) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1043 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1044 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1045 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1046 " Duplicates from environment variables should be filtered out (option has |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1047 " P_NODUP). Run this in a separate instance and write v:errors in a file, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1048 " so that we see what happens on startup. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1049 let after =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1050 let bsklist = split(&backupskip, ',') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1051 call assert_equal(uniq(copy(bsklist)), bsklist) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1052 call writefile(['errors:'] + v:errors, 'Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1053 qall |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1054 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1055 call writefile(after, 'Xafter', 'D') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1056 let cmd = GetVimProg() . ' --not-a-term -S Xafter --cmd "set enc=utf8"' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1057 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1058 let saveenv = {} |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1059 for var in ['TMPDIR', 'TMP', 'TEMP'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1060 let saveenv[var] = getenv(var) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1061 call setenv(var, '/duplicate/path') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1062 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1063 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1064 exe 'silent !' . cmd |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1065 call assert_equal(['errors:'], readfile('Xtestout')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1066 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1067 " restore environment variables |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1068 for var in ['TMPDIR', 'TMP', 'TEMP'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1069 call setenv(var, saveenv[var]) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1070 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1071 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1072 call delete('Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1073 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1074 " Duplicates should be filtered out (option has P_NODUP) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1075 let backupskip = &backupskip |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1076 set backupskip= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1077 set backupskip+=/test/dir |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1078 set backupskip+=/other/dir |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1079 set backupskip+=/test/dir |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1080 call assert_equal('/test/dir,/other/dir', &backupskip) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1081 let &backupskip = backupskip |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1082 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1083 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1084 func Test_buf_copy_winopt() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1085 set hidden |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1086 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1087 " Test copy option from current buffer in window |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1088 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1089 enew |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1090 setlocal numberwidth=5 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1091 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1092 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1093 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1094 call assert_equal(5,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1095 bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1096 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1097 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1098 " Test copy value from window that used to be display the buffer |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1099 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1100 enew |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1101 setlocal numberwidth=6 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1102 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1103 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1104 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1105 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1106 call assert_equal(6,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1107 bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1108 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1109 " Test that if buffer is current, don't use the stale cached value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1110 " from the last time the buffer was displayed. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1111 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1112 enew |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1113 setlocal numberwidth=7 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1114 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1115 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1116 setlocal numberwidth=8 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1117 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1118 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1119 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1120 call assert_equal(8,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1121 bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1122 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1123 " Test value is not copied if window already has seen the buffer |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1124 enew |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1125 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1126 setlocal numberwidth=9 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1127 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1128 setlocal numberwidth=10 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1129 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1130 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1131 bnext |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1132 call assert_equal(4,&numberwidth) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1133 bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1134 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1135 set hidden& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1136 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1137 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1138 def Test_split_copy_options() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1139 var values = [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1140 ['cursorbind', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1141 ['fillchars', '"vert:-"', '"' .. &fillchars .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1142 ['list', true, 0], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1143 ['listchars', '"space:-"', '"' .. &listchars .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1144 ['number', true, 0], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1145 ['relativenumber', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1146 ['scrollbind', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1147 ['smoothscroll', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1148 ['virtualedit', '"block"', '"' .. &virtualedit .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1149 ['wincolor', '"Search"', '"' .. &wincolor .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1150 ['wrap', false, true], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1151 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1152 if has('linebreak') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1153 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1154 ['breakindent', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1155 ['breakindentopt', '"min:5"', '"' .. &breakindentopt .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1156 ['linebreak', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1157 ['numberwidth', 7, 4], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1158 ['showbreak', '"++"', '"' .. &showbreak .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1159 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1160 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1161 if has('rightleft') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1162 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1163 ['rightleft', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1164 ['rightleftcmd', '"search"', '"' .. &rightleftcmd .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1165 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1166 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1167 if has('statusline') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1168 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1169 ['statusline', '"---%f---"', '"' .. &statusline .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1170 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1171 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1172 if has('spell') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1173 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1174 ['spell', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1175 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1176 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1177 if has('syntax') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1178 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1179 ['cursorcolumn', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1180 ['cursorline', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1181 ['cursorlineopt', '"screenline"', '"' .. &cursorlineopt .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1182 ['colorcolumn', '"+1"', '"' .. &colorcolumn .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1183 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1184 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1185 if has('diff') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1186 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1187 ['diff', true, false], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1188 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1189 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1190 if has('conceal') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1191 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1192 ['concealcursor', '"nv"', '"' .. &concealcursor .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1193 ['conceallevel', '3', &conceallevel], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1194 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1195 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1196 if has('terminal') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1197 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1198 ['termwinkey', '"<C-X>"', '"' .. &termwinkey .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1199 ['termwinsize', '"10x20"', '"' .. &termwinsize .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1200 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1201 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1202 if has('folding') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1203 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1204 ['foldcolumn', 5, &foldcolumn], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1205 ['foldenable', false, true], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1206 ['foldexpr', '"2 + 3"', '"' .. &foldexpr .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1207 ['foldignore', '"+="', '"' .. &foldignore .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1208 ['foldlevel', 4, &foldlevel], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1209 ['foldmarker', '">>,<<"', '"' .. &foldmarker .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1210 ['foldmethod', '"marker"', '"' .. &foldmethod .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1211 ['foldminlines', 3, &foldminlines], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1212 ['foldnestmax', 17, &foldnestmax], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1213 ['foldtext', '"closed"', '"' .. &foldtext .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1214 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1215 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1216 if has('signs') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1217 values += [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1218 ['signcolumn', '"number"', '"' .. &signcolumn .. '"'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1219 ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1220 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1221 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1222 # set options to non-default value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1223 for item in values |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1224 exe $'&l:{item[0]} = {item[1]}' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1225 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1226 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1227 # check values are set in new window |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1228 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1229 for item in values |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1230 exe $'assert_equal({item[1]}, &{item[0]}, "{item[0]}")' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1231 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1232 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1233 # restore |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1234 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1235 for item in values |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1236 exe $'&l:{item[0]} = {item[2]}' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1237 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1238 enddef |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1239 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1240 func Test_shortmess_F() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1241 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1242 call assert_match('\[No Name\]', execute('file')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1243 set shortmess+=F |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1244 call assert_match('\[No Name\]', execute('file')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1245 call assert_match('^\s*$', execute('file foo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1246 call assert_match('foo', execute('file')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1247 set shortmess-=F |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1248 call assert_match('bar', execute('file bar')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1249 call assert_match('bar', execute('file')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1250 set shortmess& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1251 bwipe |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1252 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1253 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1254 func Test_shortmess_F2() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1255 e file1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1256 e file2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1257 call assert_match('file1', execute('bn', '')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1258 call assert_match('file2', execute('bn', '')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1259 set shortmess+=F |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1260 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1261 call assert_false(test_getvalue('need_fileinfo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1262 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1263 call assert_false('need_fileinfo'->test_getvalue()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1264 set hidden |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1265 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1266 call assert_false(test_getvalue('need_fileinfo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1267 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1268 call assert_false(test_getvalue('need_fileinfo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1269 set nohidden |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1270 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1271 call assert_false(test_getvalue('need_fileinfo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1272 call assert_true(empty(execute('bn', ''))) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1273 call assert_false(test_getvalue('need_fileinfo')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1274 set shortmess& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1275 call assert_match('file1', execute('bn', '')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1276 call assert_match('file2', execute('bn', '')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1277 bwipe |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1278 bwipe |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1279 call assert_fails('call test_getvalue("abc")', 'E475:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1280 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1281 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1282 func Test_local_scrolloff() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1283 set so=5 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1284 set siso=7 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1285 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1286 call assert_equal(5, &so) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1287 setlocal so=3 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1288 call assert_equal(3, &so) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1289 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1290 call assert_equal(5, &so) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1291 wincmd w |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1292 call assert_equal(3, &so) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1293 setlocal so< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1294 call assert_equal(5, &so) |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1295 setglob so=8 |
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1296 call assert_equal(8, &so) |
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1297 call assert_equal(-1, &l:so) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1298 setlocal so=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1299 call assert_equal(0, &so) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1300 setlocal so=-1 |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1301 call assert_equal(8, &so) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1302 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1303 call assert_equal(7, &siso) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1304 setlocal siso=3 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1305 call assert_equal(3, &siso) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1306 wincmd w |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1307 call assert_equal(7, &siso) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1308 wincmd w |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1309 call assert_equal(3, &siso) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1310 setlocal siso< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1311 call assert_equal(7, &siso) |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1312 setglob siso=4 |
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1313 call assert_equal(4, &siso) |
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1314 call assert_equal(-1, &l:siso) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1315 setlocal siso=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1316 call assert_equal(0, &siso) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1317 setlocal siso=-1 |
32679
1b9a29f7fe86
patch 9.0.1670: resetting local option to global value is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
32670
diff
changeset
|
1318 call assert_equal(4, &siso) |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1319 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1320 close |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1321 set so& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1322 set siso& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1323 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1324 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1325 func Test_writedelay() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1326 CheckFunction reltimefloat |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1327 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1328 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1329 call setline(1, 'empty') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1330 redraw |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1331 set writedelay=10 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1332 let start = reltime() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1333 call setline(1, repeat('x', 70)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1334 redraw |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1335 let elapsed = reltimefloat(reltime(start)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1336 set writedelay=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1337 " With 'writedelay' set should take at least 30 * 10 msec |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1338 call assert_inrange(30 * 0.01, 999.0, elapsed) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1339 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1340 bwipe! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1341 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1342 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1343 func Test_visualbell() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1344 set belloff= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1345 set visualbell |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1346 call assert_beeps('normal 0h') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1347 set novisualbell |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1348 set belloff=all |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1349 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1350 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1351 " Test for the 'write' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1352 func Test_write() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1353 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1354 call setline(1, ['L1']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1355 set nowrite |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1356 call assert_fails('write Xwrfile', 'E142:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1357 set write |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1358 close! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1359 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1360 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1361 " Test for 'buftype' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1362 func Test_buftype() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1363 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1364 call setline(1, ['L1']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1365 set buftype=nowrite |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1366 call assert_fails('write', 'E382:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1367 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1368 for val in ['', 'nofile', 'nowrite', 'acwrite', 'quickfix', 'help', 'terminal', 'prompt', 'popup'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1369 exe 'set buftype=' .. val |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1370 call writefile(['something'], 'XBuftype', 'D') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1371 call assert_fails('write XBuftype', 'E13:', 'with buftype=' .. val) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1372 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1373 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1374 bwipe! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1375 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1376 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1377 " Test for the 'rightleftcmd' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1378 func Test_rightleftcmd() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1379 CheckFeature rightleft |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1380 set rightleft |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1381 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1382 let g:l = [] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1383 func AddPos() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1384 call add(g:l, screencol()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1385 return '' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1386 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1387 cmap <expr> <F2> AddPos() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1388 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1389 set rightleftcmd= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1390 call feedkeys("/\<F2>abc\<Right>\<F2>\<Left>\<Left>\<F2>" .. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1391 \ "\<Right>\<F2>\<Esc>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1392 call assert_equal([2, 5, 3, 4], g:l) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1393 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1394 let g:l = [] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1395 set rightleftcmd=search |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1396 call feedkeys("/\<F2>abc\<Left>\<F2>\<Right>\<Right>\<F2>" .. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1397 \ "\<Left>\<F2>\<Esc>", 'xt') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1398 call assert_equal([&co - 1, &co - 4, &co - 2, &co - 3], g:l) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1399 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1400 cunmap <F2> |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1401 unlet g:l |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1402 set rightleftcmd& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1403 set rightleft& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1404 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1405 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1406 " Test for the 'debug' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1407 func Test_debug_option() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1408 " redraw to avoid matching previous messages |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1409 redraw |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1410 set debug=beep |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1411 exe "normal \<C-c>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1412 call assert_equal('Beep!', Screenline(&lines)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1413 call assert_equal('line 4:', Screenline(&lines - 1)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1414 " also check a line above, with a certain window width the colon is there |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1415 call assert_match('Test_debug_option:$', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1416 \ Screenline(&lines - 3) .. Screenline(&lines - 2)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1417 set debug& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1418 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1419 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1420 " Test for the default CDPATH option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1421 func Test_opt_default_cdpath() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1422 let after =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1423 call assert_equal(',/path/to/dir1,/path/to/dir2', &cdpath) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1424 call writefile(v:errors, 'Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1425 qall |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1426 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1427 if has('unix') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1428 let $CDPATH='/path/to/dir1:/path/to/dir2' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1429 else |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1430 let $CDPATH='/path/to/dir1;/path/to/dir2' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1431 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1432 if RunVim([], after, '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1433 call assert_equal([], readfile('Xtestout')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1434 call delete('Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1435 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1436 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1437 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1438 " Test for setting keycodes using set |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1439 func Test_opt_set_keycode() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1440 call assert_fails('set <t_k1=l', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1441 call assert_fails('set <Home=l', 'E474:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1442 set <t_k9>=abcd |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1443 call assert_equal('abcd', &t_k9) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1444 set <t_k9>& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1445 set <F9>=xyz |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1446 call assert_equal('xyz', &t_k9) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1447 set <t_k9>& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1448 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1449 " should we test all of them? |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1450 set t_Ce=testCe |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1451 set t_Cs=testCs |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1452 set t_Us=testUs |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1453 set t_ds=testds |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1454 set t_Ds=testDs |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1455 call assert_equal('testCe', &t_Ce) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1456 call assert_equal('testCs', &t_Cs) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1457 call assert_equal('testUs', &t_Us) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1458 call assert_equal('testds', &t_ds) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1459 call assert_equal('testDs', &t_Ds) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1460 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1461 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1462 " Test for changing options in a sandbox |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1463 func Test_opt_sandbox() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1464 for opt in ['backupdir', 'cdpath', 'exrc'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1465 call assert_fails('sandbox set ' .. opt .. '?', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1466 call assert_fails('sandbox let &' .. opt .. ' = 1', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1467 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1468 call assert_fails('sandbox let &modelineexpr = 1', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1469 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1470 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1471 " Test for setting an option with local value to global value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1472 func Test_opt_local_to_global() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1473 setglobal equalprg=gprg |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1474 setlocal equalprg=lprg |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1475 call assert_equal('gprg', &g:equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1476 call assert_equal('lprg', &l:equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1477 call assert_equal('lprg', &equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1478 set equalprg< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1479 call assert_equal('', &l:equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1480 call assert_equal('gprg', &equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1481 setglobal equalprg=gnewprg |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1482 setlocal equalprg=lnewprg |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1483 setlocal equalprg< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1484 call assert_equal('gnewprg', &l:equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1485 call assert_equal('gnewprg', &equalprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1486 set equalprg& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1487 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1488 " Test for setting the global/local value of a boolean option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1489 setglobal autoread |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1490 setlocal noautoread |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1491 call assert_false(&autoread) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1492 set autoread< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1493 call assert_true(&autoread) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1494 setglobal noautoread |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1495 setlocal autoread |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1496 setlocal autoread< |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1497 call assert_false(&autoread) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1498 set autoread& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1499 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1500 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1501 func Test_set_in_sandbox() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1502 " Some boolean options cannot be set in sandbox, some can. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1503 call assert_fails('sandbox set modelineexpr', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1504 sandbox set number |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1505 call assert_true(&number) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1506 set number& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1507 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1508 " Some boolean options cannot be set in sandbox, some can. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1509 if has('python') || has('python3') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1510 call assert_fails('sandbox set pyxversion=3', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1511 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1512 sandbox set tabstop=4 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1513 call assert_equal(4, &tabstop) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1514 set tabstop& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1515 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1516 " Some string options cannot be set in sandbox, some can. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1517 call assert_fails('sandbox set backupdir=/tmp', 'E48:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1518 sandbox set filetype=perl |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1519 call assert_equal('perl', &filetype) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1520 set filetype& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1521 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1522 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1523 " Test for incrementing, decrementing and multiplying a number option value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1524 func Test_opt_num_op() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1525 set shiftwidth=4 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1526 set sw+=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1527 call assert_equal(6, &sw) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1528 set sw-=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1529 call assert_equal(4, &sw) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1530 set sw^=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1531 call assert_equal(8, &sw) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1532 set shiftwidth& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1533 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1534 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1535 " Test for setting option values using v:false and v:true |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1536 func Test_opt_boolean() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1537 set number& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1538 set number |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1539 call assert_equal(1, &nu) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1540 set nonu |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1541 call assert_equal(0, &nu) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1542 let &nu = v:true |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1543 call assert_equal(1, &nu) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1544 let &nu = v:false |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1545 call assert_equal(0, &nu) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1546 set number& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1547 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1548 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1549 " Test for the 'window' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1550 func Test_window_opt() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1551 " Needs only one open widow |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1552 %bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1553 call setline(1, range(1, 8)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1554 set window=5 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1555 exe "normal \<C-F>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1556 call assert_equal(4, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1557 exe "normal \<C-F>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1558 call assert_equal(7, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1559 exe "normal \<C-F>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1560 call assert_equal(8, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1561 exe "normal \<C-B>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1562 call assert_equal(5, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1563 exe "normal \<C-B>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1564 call assert_equal(2, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1565 exe "normal \<C-B>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1566 call assert_equal(1, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1567 set window=1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1568 exe "normal gg\<C-F>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1569 call assert_equal(2, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1570 exe "normal \<C-F>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1571 call assert_equal(3, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1572 exe "normal \<C-B>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1573 call assert_equal(2, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1574 exe "normal \<C-B>" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1575 call assert_equal(1, line('w0')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1576 enew! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1577 set window& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1578 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1579 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1580 " Test for the 'winminheight' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1581 func Test_opt_winminheight() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1582 only! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1583 let &winheight = &lines + 4 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1584 call assert_fails('let &winminheight = &lines + 2', 'E36:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1585 call assert_true(&winminheight <= &lines) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1586 set winminheight& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1587 set winheight& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1588 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1589 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1590 func Test_opt_winminheight_term() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1591 CheckRunVimInTerminal |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1592 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1593 " The tabline should be taken into account. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1594 let lines =<< trim END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1595 set wmh=0 stal=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1596 below sp | wincmd _ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1597 below sp | wincmd _ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1598 below sp | wincmd _ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1599 below sp |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1600 END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1601 call writefile(lines, 'Xwinminheight', 'D') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1602 let buf = RunVimInTerminal('-S Xwinminheight', #{rows: 11}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1603 call term_sendkeys(buf, ":set wmh=1\n") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1604 call WaitForAssert({-> assert_match('E36: Not enough room', term_getline(buf, 11))}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1605 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1606 call StopVimInTerminal(buf) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1607 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1608 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1609 func Test_opt_winminheight_term_tabs() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1610 CheckRunVimInTerminal |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1611 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1612 " The tabline should be taken into account. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1613 let lines =<< trim END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1614 set wmh=0 stal=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1615 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1616 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1617 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1618 split |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1619 tabnew |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1620 END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1621 call writefile(lines, 'Xwinminheight', 'D') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1622 let buf = RunVimInTerminal('-S Xwinminheight', #{rows: 11}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1623 call term_sendkeys(buf, ":set wmh=1\n") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1624 call WaitForAssert({-> assert_match('E36: Not enough room', term_getline(buf, 11))}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1625 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1626 call StopVimInTerminal(buf) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1627 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1628 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1629 " Test for the 'winminwidth' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1630 func Test_opt_winminwidth() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1631 only! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1632 let &winwidth = &columns + 4 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1633 call assert_fails('let &winminwidth = &columns + 2', 'E36:') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1634 call assert_true(&winminwidth <= &columns) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1635 set winminwidth& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1636 set winwidth& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1637 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1638 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1639 " Test for setting option value containing spaces with isfname+=32 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1640 func Test_isfname_with_options() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1641 set isfname+=32 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1642 setlocal keywordprg=:term\ help.exe |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1643 call assert_equal(':term help.exe', &keywordprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1644 set isfname& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1645 setlocal keywordprg& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1646 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1647 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1648 " Test that resetting laststatus does change scroll option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1649 func Test_opt_reset_scroll() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1650 CheckRunVimInTerminal |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1651 let vimrc =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1652 set scroll=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1653 set laststatus=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1654 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1655 call writefile(vimrc, 'Xscroll', 'D') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1656 let buf = RunVimInTerminal('-S Xscroll', {'rows': 16, 'cols': 45}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1657 call term_sendkeys(buf, ":verbose set scroll?\n") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1658 call WaitForAssert({-> assert_match('Last set.*window size', term_getline(buf, 15))}) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1659 call assert_match('^\s*scroll=7$', term_getline(buf, 14)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1660 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1661 " clean up |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1662 call StopVimInTerminal(buf) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1663 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1664 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1665 " Check that VIM_POSIX env variable influences default value of 'cpo' and 'shm' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1666 func Test_VIM_POSIX() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1667 let saved_VIM_POSIX = getenv("VIM_POSIX") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1668 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1669 call setenv('VIM_POSIX', "1") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1670 let after =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1671 call writefile([&cpo, &shm], 'X_VIM_POSIX') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1672 qall |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1673 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1674 if RunVim([], after, '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1675 call assert_equal(['aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\.;', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1676 \ 'AS'], readfile('X_VIM_POSIX')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1677 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1678 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1679 call setenv('VIM_POSIX', v:null) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1680 let after =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1681 call writefile([&cpo, &shm], 'X_VIM_POSIX') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1682 qall |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1683 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1684 if RunVim([], after, '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1685 call assert_equal(['aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1686 \ 'S'], readfile('X_VIM_POSIX')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1687 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1688 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1689 call delete('X_VIM_POSIX') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1690 call setenv('VIM_POSIX', saved_VIM_POSIX) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1691 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1692 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1693 " Test for setting an option to a Vi or Vim default |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1694 func Test_opt_default() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1695 set formatoptions&vi |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1696 call assert_equal('vt', &formatoptions) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1697 set formatoptions&vim |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1698 call assert_equal('tcq', &formatoptions) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1699 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1700 call assert_equal('ucs-bom,utf-8,default,latin1', &fencs) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1701 set fencs=latin1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1702 set fencs& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1703 call assert_equal('ucs-bom,utf-8,default,latin1', &fencs) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1704 set fencs=latin1 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1705 set all& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1706 call assert_equal('ucs-bom,utf-8,default,latin1', &fencs) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1707 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1708 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1709 " Test for the 'cmdheight' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1710 func Test_cmdheight() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1711 %bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1712 let ht = &lines |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1713 set cmdheight=9999 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1714 call assert_equal(1, winheight(0)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1715 call assert_equal(ht - 1, &cmdheight) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1716 set cmdheight& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1717 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1718 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1719 " To specify a control character as an option value, '^' can be used |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1720 func Test_opt_control_char() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1721 set wildchar=^v |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1722 call assert_equal("\<C-V>", nr2char(&wildchar)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1723 set wildcharm=^r |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1724 call assert_equal("\<C-R>", nr2char(&wildcharm)) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1725 " Bug: This doesn't work for the 'cedit' and 'termwinkey' options |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1726 set wildchar& wildcharm& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1727 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1728 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1729 " Test for the 'errorbells' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1730 func Test_opt_errorbells() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1731 set errorbells |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1732 call assert_beeps('s/a1b2/x1y2/') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1733 set noerrorbells |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1734 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1735 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1736 func Test_opt_scrolljump() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1737 help |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1738 resize 10 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1739 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1740 " Test with positive 'scrolljump'. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1741 set scrolljump=2 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1742 norm! Lj |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1743 call assert_equal({'lnum':11, 'leftcol':0, 'col':0, 'topfill':0, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1744 \ 'topline':3, 'coladd':0, 'skipcol':0, 'curswant':0}, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1745 \ winsaveview()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1746 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1747 " Test with negative 'scrolljump' (percentage of window height). |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1748 set scrolljump=-40 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1749 norm! ggLj |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1750 call assert_equal({'lnum':11, 'leftcol':0, 'col':0, 'topfill':0, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1751 \ 'topline':5, 'coladd':0, 'skipcol':0, 'curswant':0}, |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1752 \ winsaveview()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1753 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1754 set scrolljump& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1755 bw |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1756 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1757 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1758 " Test for the 'cdhome' option |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1759 func Test_opt_cdhome() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1760 if has('unix') || has('vms') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1761 throw 'Skipped: only works on non-Unix' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1762 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1763 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1764 set cdhome& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1765 call assert_equal(0, &cdhome) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1766 set cdhome |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1767 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1768 " This paragraph is copied from Test_cd_no_arg(). |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1769 let path = getcwd() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1770 cd |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1771 call assert_equal($HOME, getcwd()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1772 call assert_notequal(path, getcwd()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1773 exe 'cd ' .. fnameescape(path) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1774 call assert_equal(path, getcwd()) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1775 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1776 set cdhome& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1777 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1778 |
33399
95db67c7b754
patch 9.0.1958: cannot complete option values
Christian Brabandt <cb@256bit.org>
parents:
33397
diff
changeset
|
1779 func Test_set_completion_fuzzy() |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1780 CheckOption termguicolors |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1781 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1782 " Test default option completion |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1783 set wildoptions= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1784 call feedkeys(":set termg\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1785 call assert_equal('"set termguicolors', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1786 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1787 call feedkeys(":set notermg\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1788 call assert_equal('"set notermguicolors', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1789 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1790 " Test fuzzy option completion |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1791 set wildoptions=fuzzy |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1792 call feedkeys(":set termg\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1793 call assert_equal('"set termguicolors termencoding', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1794 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1795 call feedkeys(":set notermg\<C-A>\<C-B>\"\<CR>", 'tx') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1796 call assert_equal('"set notermguicolors', @:) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1797 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1798 set wildoptions= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1799 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1800 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1801 func Test_switchbuf_reset() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1802 set switchbuf=useopen |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1803 sblast |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1804 call assert_equal(1, winnr('$')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1805 set all& |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1806 call assert_equal('', &switchbuf) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1807 sblast |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1808 call assert_equal(2, winnr('$')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1809 only! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1810 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1811 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1812 " :set empty string for global 'keywordprg' falls back to ":help" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1813 func Test_keywordprg_empty() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1814 let k = &keywordprg |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1815 set keywordprg=man |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1816 call assert_equal('man', &keywordprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1817 set keywordprg= |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1818 call assert_equal(':help', &keywordprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1819 set keywordprg=man |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1820 call assert_equal('man', &keywordprg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1821 call assert_equal("\n keywordprg=:help", execute('set kp= kp?')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1822 let &keywordprg = k |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1823 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1824 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1825 " check that the very first buffer created does not have 'endoffile' set |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1826 func Test_endoffile_default() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1827 let after =<< trim [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1828 call writefile([execute('set eof?')], 'Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1829 qall! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1830 [CODE] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1831 if RunVim([], after, '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1832 call assert_equal(["\nnoendoffile"], readfile('Xtestout')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1833 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1834 call delete('Xtestout') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1835 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1836 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1837 " Test for setting the 'lines' and 'columns' options to a minimum value |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1838 func Test_set_min_lines_columns() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1839 let save_lines = &lines |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1840 let save_columns = &columns |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1841 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1842 let after =<< trim END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1843 set nomore |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1844 let msg = [] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1845 let v:errmsg = '' |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1846 silent! let &columns=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1847 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1848 silent! set columns=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1849 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1850 silent! call setbufvar('', '&columns', 0) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1851 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1852 "call writefile(msg, 'XResultsetminlines') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1853 silent! let &lines=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1854 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1855 silent! set lines=0 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1856 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1857 silent! call setbufvar('', '&lines', 0) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1858 call add(msg, v:errmsg) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1859 call writefile(msg, 'XResultsetminlines') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1860 qall! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1861 END |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1862 if RunVim([], after, '') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1863 call assert_equal(['E594: Need at least 12 columns', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1864 \ 'E594: Need at least 12 columns: columns=0', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1865 \ 'E594: Need at least 12 columns', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1866 \ 'E593: Need at least 2 lines', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1867 \ 'E593: Need at least 2 lines: lines=0', |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1868 \ 'E593: Need at least 2 lines',], readfile('XResultsetminlines')) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1869 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1870 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1871 call delete('XResultsetminlines') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1872 let &lines = save_lines |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1873 let &columns = save_columns |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1874 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1875 |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1876 " Test for reverting a string option value if the new value is invalid. |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1877 func Test_string_option_revert_on_failure() |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1878 new |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1879 let optlist = [ |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1880 \ ['ambiwidth', 'double', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1881 \ ['background', 'dark', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1882 \ ['backspace', 'eol', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1883 \ ['backupcopy', 'no', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1884 \ ['belloff', 'showmatch', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1885 \ ['breakindentopt', 'min:10', 'list'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1886 \ ['bufhidden', 'wipe', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1887 \ ['buftype', 'nowrite', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1888 \ ['casemap', 'keepascii', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1889 \ ['cedit', "\<C-Y>", 'z'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1890 \ ['colorcolumn', '10', 'z'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1891 \ ['commentstring', '#%s', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1892 \ ['complete', '.,t', 'a'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1893 \ ['completefunc', 'MyCmplFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1894 \ ['completeopt', 'popup', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1895 \ ['completepopup', 'width:20', 'border'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1896 \ ['concealcursor', 'v', 'xyz'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1897 \ ['cpoptions', 'HJ', '~'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1898 \ ['cryptmethod', 'zip', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1899 \ ['cursorlineopt', 'screenline', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1900 \ ['debug', 'throw', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1901 \ ['diffopt', 'iwhite', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1902 \ ['display', 'uhex', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1903 \ ['eadirection', 'hor', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1904 \ ['encoding', 'utf-8', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1905 \ ['eventignore', 'TextYankPost', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1906 \ ['fileencoding', 'utf-8', 'a123,'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1907 \ ['fileformat', 'mac', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1908 \ ['fileformats', 'mac', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1909 \ ['filetype', 'abc', 'a^b'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1910 \ ['fillchars', 'diff:~', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1911 \ ['foldclose', 'all', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1912 \ ['foldmarker', '[[[,]]]', '[[['], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1913 \ ['foldmethod', 'marker', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1914 \ ['foldopen', 'percent', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1915 \ ['formatoptions', 'an', '*'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1916 \ ['guicursor', 'n-v-c:block-Cursor/lCursor', 'n-v-c'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1917 \ ['helplang', 'en', 'a'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1918 \ ['highlight', '!:CursorColumn', '8:'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1919 \ ['keymodel', 'stopsel', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1920 \ ['keyprotocol', 'kitty:kitty', 'kitty:'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1921 \ ['lispoptions', 'expr:1', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1922 \ ['listchars', 'tab:->', 'tab:'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1923 \ ['matchpairs', '<:>', '<:'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1924 \ ['mkspellmem', '100000,1000,100', '100000'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1925 \ ['mouse', 'nvi', 'z'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1926 \ ['mousemodel', 'extend', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1927 \ ['nrformats', 'alpha', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1928 \ ['omnifunc', 'MyOmniFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1929 \ ['operatorfunc', 'MyOpFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1930 \ ['previewpopup', 'width:20', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1931 \ ['printoptions', 'paper:A4', 'a123:'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1932 \ ['quickfixtextfunc', 'MyQfFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1933 \ ['rulerformat', '%l', '%['], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1934 \ ['scrollopt', 'hor,jump', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1935 \ ['selection', 'exclusive', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1936 \ ['selectmode', 'cmd', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1937 \ ['sessionoptions', 'options', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1938 \ ['shortmess', 'w', '2'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1939 \ ['showbreak', '>>', "\x01"], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1940 \ ['showcmdloc', 'statusline', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1941 \ ['signcolumn', 'no', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1942 \ ['spellcapcheck', '[.?!]\+', '%\{'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1943 \ ['spellfile', 'MySpell.en.add', "\x01"], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1944 \ ['spelllang', 'en', "#"], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1945 \ ['spelloptions', 'camel', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1946 \ ['spellsuggest', 'double', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1947 \ ['splitkeep', 'topline', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1948 \ ['statusline', '%f', '%['], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1949 \ ['swapsync', 'sync', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1950 \ ['switchbuf', 'usetab', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1951 \ ['syntax', 'abc', 'a^b'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1952 \ ['tabline', '%f', '%['], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1953 \ ['tagcase', 'ignore', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1954 \ ['tagfunc', 'MyTagFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1955 \ ['thesaurusfunc', 'MyThesaurusFunc', '1a-'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1956 \ ['viewoptions', 'options', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1957 \ ['virtualedit', 'onemore', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1958 \ ['whichwrap', '<,>', '{,}'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1959 \ ['wildmode', 'list', 'a123'], |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1960 \ ['wildoptions', 'pum', 'a123'] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1961 \ ] |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1962 if has('gui') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1963 call add(optlist, ['browsedir', 'buffer', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1964 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1965 if has('clipboard_working') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1966 call add(optlist, ['clipboard', 'unnamed', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1967 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1968 if has('win32') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1969 call add(optlist, ['completeslash', 'slash', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1970 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1971 if has('cscope') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1972 call add(optlist, ['cscopequickfix', 't-', 'z-']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1973 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1974 if !has('win32') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1975 call add(optlist, ['imactivatefunc', 'MyActFunc', '1a-']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1976 call add(optlist, ['imstatusfunc', 'MyStatusFunc', '1a-']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1977 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1978 if has('keymap') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1979 call add(optlist, ['keymap', 'greek', '[]']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1980 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1981 if has('mouseshape') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1982 call add(optlist, ['mouseshape', 'm:no', 'a123:']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1983 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1984 if has('win32') && has('gui') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1985 call add(optlist, ['renderoptions', 'type:directx', 'type:directx,a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1986 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1987 if has('rightleft') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1988 call add(optlist, ['rightleftcmd', 'search', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1989 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1990 if has('terminal') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1991 call add(optlist, ['termwinkey', '<C-L>', '<C']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1992 call add(optlist, ['termwinsize', '24x80', '100']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1993 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1994 if has('win32') && has('terminal') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1995 call add(optlist, ['termwintype', 'winpty', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1996 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1997 if exists('+toolbar') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1998 call add(optlist, ['toolbar', 'text', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
1999 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2000 if exists('+toolbariconsize') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2001 call add(optlist, ['toolbariconsize', 'medium', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2002 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2003 if exists('+ttymouse') && !has('gui') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2004 call add(optlist, ['ttymouse', 'xterm', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2005 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2006 if exists('+vartabs') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2007 call add(optlist, ['varsofttabstop', '12', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2008 call add(optlist, ['vartabstop', '4,20', '4,']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2009 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2010 if exists('+winaltkeys') |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2011 call add(optlist, ['winaltkeys', 'no', 'a123']) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2012 endif |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2013 for opt in optlist |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2014 exe $"let save_opt = &{opt[0]}" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2015 try |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2016 exe $"let &{opt[0]} = '{opt[1]}'" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2017 catch |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2018 call assert_report($"Caught {v:exception} with {opt->string()}") |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2019 endtry |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2020 call assert_fails($"let &{opt[0]} = '{opt[2]}'", '', opt[0]) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2021 call assert_equal(opt[1], eval($"&{opt[0]}"), opt[0]) |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2022 exe $"let &{opt[0]} = save_opt" |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2023 endfor |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2024 bw! |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2025 endfunc |
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2026 |
32788
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2027 func Test_set_option_window_global_local() |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2028 new Xbuffer1 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2029 let [ _gso, _lso ] = [ &g:scrolloff, &l:scrolloff ] |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2030 setlocal scrolloff=2 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2031 setglobal scrolloff=3 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2032 setl modified |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2033 " A new buffer has its own window-local options |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2034 hide enew |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2035 call assert_equal(-1, &l:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2036 call assert_equal(3, &g:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2037 " A new window opened with its own buffer-local options |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2038 new |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2039 call assert_equal(-1, &l:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2040 call assert_equal(3, &g:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2041 " Re-open Xbuffer1 and it should use |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2042 " the previous set window-local options |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2043 b Xbuffer1 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2044 call assert_equal(2, &l:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2045 call assert_equal(3, &g:scrolloff) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2046 bw! |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2047 bw! |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2048 let &g:scrolloff = _gso |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2049 endfunc |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2050 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2051 func GetGlobalLocalWindowOptions() |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2052 new |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2053 sil! r $VIMRUNTIME/doc/options.txt |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2054 " Filter for global or local to window |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2055 v/^'.*'.*\n.*global or local to window |global-local/d |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2056 " get option value and type |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2057 sil %s/^'\([^']*\)'.*'\s\+\(\w\+\)\s\+(default \%(\(".*"\|\d\+\|empty\)\).*/\1 \2 \3/g |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2058 sil %s/empty/""/g |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2059 " split the result |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2060 let result=getline(1,'$')->map({_, val -> split(val, ' ')}) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2061 bw! |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2062 return result |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2063 endfunc |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2064 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2065 func Test_set_option_window_global_local_all() |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2066 new Xbuffer2 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2067 |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2068 let optionlist = GetGlobalLocalWindowOptions() |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2069 for [opt, type, default] in optionlist |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2070 let _old = eval('&g:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2071 if type == 'string' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2072 if opt == 'fillchars' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2073 exe 'setl ' .. opt .. '=vert:+' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2074 exe 'setg ' .. opt .. '=vert:+,fold:+' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2075 elseif opt == 'listchars' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2076 exe 'setl ' .. opt .. '=tab:>>' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2077 exe 'setg ' .. opt .. '=tab:++' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2078 elseif opt == 'virtualedit' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2079 exe 'setl ' .. opt .. '=all' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2080 exe 'setg ' .. opt .. '=block' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2081 else |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2082 exe 'setl ' .. opt .. '=Local' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2083 exe 'setg ' .. opt .. '=Global' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2084 endif |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2085 elseif type == 'number' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2086 exe 'setl ' .. opt .. '=5' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2087 exe 'setg ' .. opt .. '=10' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2088 endif |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2089 setl modified |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2090 hide enew |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2091 if type == 'string' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2092 call assert_equal('', eval('&l:' .. opt)) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2093 if opt == 'fillchars' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2094 call assert_equal('vert:+,fold:+', eval('&g:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2095 elseif opt == 'listchars' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2096 call assert_equal('tab:++', eval('&g:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2097 elseif opt == 'virtualedit' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2098 call assert_equal('block', eval('&g:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2099 else |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2100 call assert_equal('Global', eval('&g:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2101 endif |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2102 elseif type == 'number' |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2103 call assert_equal(-1, eval('&l:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2104 call assert_equal(10, eval('&g:' .. opt), 'option:' .. opt) |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2105 endif |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2106 bw! |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2107 exe 'let &g:' .. opt .. '=' .. default |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2108 endfor |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2109 bw! |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2110 endfunc |
80152cf7ce63
patch 9.0.1710: scrolloff options work slightly different
Christian Brabandt <cb@256bit.org>
parents:
32679
diff
changeset
|
2111 |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2112 func Test_paste_depending_options() |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2113 " setting the paste option, resets all dependent options |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2114 " and will be reported correctly using :verbose set <option>? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2115 let lines =<< trim [CODE] |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2116 " set paste test |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2117 set autoindent |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2118 set expandtab |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2119 " disabled, because depends on compiled feature set |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2120 " set hkmap |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2121 " set revins |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2122 " set varsofttabstop=8,32,8 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2123 set ruler |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2124 set showmatch |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2125 set smarttab |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2126 set softtabstop=4 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2127 set textwidth=80 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2128 set wrapmargin=10 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2129 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2130 source Xvimrc_paste2 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2131 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2132 redir > Xoutput_paste |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2133 verbose set expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2134 verbose setg expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2135 verbose setl expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2136 redir END |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2137 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2138 qall! |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2139 [CODE] |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2140 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2141 call writefile(lines, 'Xvimrc_paste', 'D') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2142 call writefile(['set paste'], 'Xvimrc_paste2', 'D') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2143 if !RunVim([], lines, '--clean') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2144 return |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2145 endif |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2146 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2147 let result = readfile('Xoutput_paste')->filter('!empty(v:val)') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2148 call assert_equal('noexpandtab', result[0]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2149 call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[1]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2150 call assert_equal('noexpandtab', result[2]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2151 call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[3]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2152 call assert_equal('noexpandtab', result[4]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2153 call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[5]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2154 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2155 call delete('Xoutput_paste') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2156 endfunc |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2157 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2158 func Test_binary_depending_options() |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2159 " setting the paste option, resets all dependent options |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2160 " and will be reported correctly using :verbose set <option>? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2161 let lines =<< trim [CODE] |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2162 " set binary test |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2163 set expandtab |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2164 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2165 source Xvimrc_bin2 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2166 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2167 redir > Xoutput_bin |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2168 verbose set expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2169 verbose setg expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2170 verbose setl expandtab? |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2171 redir END |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2172 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2173 qall! |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2174 [CODE] |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2175 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2176 call writefile(lines, 'Xvimrc_bin', 'D') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2177 call writefile(['set binary'], 'Xvimrc_bin2', 'D') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2178 if !RunVim([], lines, '--clean') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2179 return |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2180 endif |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2181 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2182 let result = readfile('Xoutput_bin')->filter('!empty(v:val)') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2183 call assert_equal('noexpandtab', result[0]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2184 call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[1]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2185 call assert_equal('noexpandtab', result[2]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2186 call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[3]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2187 call assert_equal('noexpandtab', result[4]) |
32971
ccfca4f03a2b
Some more missing changes :(
Christian Brabandt <cb@256bit.org>
parents:
32962
diff
changeset
|
2188 call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[5]) |
32962
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2189 |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2190 call delete('Xoutput_bin') |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2191 endfunc |
7771cb060685
patch 9.0.1781: Problems when setting bin/paste option
Christian Brabandt <cb@256bit.org>
parents:
32788
diff
changeset
|
2192 |
33397
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2193 func Test_set_keyprotocol() |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2194 CheckNotGui |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2195 |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2196 let term = &term |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2197 set term=ansi |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2198 call assert_equal('', &t_TI) |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2199 |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2200 " Setting 'keyprotocol' should affect terminal codes without needing to |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2201 " reset 'term' |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2202 set keyprotocol+=ansi:kitty |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2203 call assert_equal("\<Esc>[=1;1u", &t_TI) |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2204 let &term = term |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2205 endfunc |
23a824d80de3
patch 9.0.1957: termcap options should change when setting keyprotocol
Christian Brabandt <cb@256bit.org>
parents:
33012
diff
changeset
|
2206 |
32670
695b50472e85
Fix line endings issue
Christian Brabandt <cb@256bit.org>
parents:
32669
diff
changeset
|
2207 " vim: shiftwidth=2 sts=2 expandtab |