Mercurial > vim
annotate src/testdir/test_langmap.vim @ 33933:aceaf677dd92 v9.0.2163
patch 9.0.2163: Vim9: type can be assigned to list/dict
Commit: https://github.com/vim/vim/commit/fa831102c38c9192edf3aaf0cbcaff9ee5e006ac
Author: Ernie Rael <errael@raelity.com>
Date: Thu Dec 14 20:06:39 2023 +0100
patch 9.0.2163: Vim9: type can be assigned to list/dict
Problem: Vim9: type can be assigned to list/dict
Solution: Prevent assigning a `type` to a `list` or `dict`
closes: #13683
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Dec 2023 20:15:08 +0100 |
parents | 360f286b5869 |
children |
rev | line source |
---|---|
7703
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " tests for 'langmap' |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
17089
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
3 source check.vim |
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
4 CheckFeature langmap |
7708
1a595b2a4d5e
commit https://github.com/vim/vim/commit/09e786e7a7fc952f43e3f88ba49ab1ac6ef3b3a3
Christian Brabandt <cb@256bit.org>
parents:
7703
diff
changeset
|
5 |
7703
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 func Test_langmap() |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 new |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 set langmap=}l,^x,%v |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 call setline(1, ['abc']) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 call feedkeys('gg0}^', 'tx') |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 call assert_equal('ac', getline(1)) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 " in Replace mode |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 " need silent! to avoid a delay when entering Insert mode |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 call setline(1, ['abcde']) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 silent! call feedkeys("gg0lR%{z\<Esc>00", 'tx') |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 call assert_equal('a%{ze', getline(1)) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 " in Select mode |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 " need silent! to avoid a delay when entering Insert mode |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 call setline(1, ['abcde']) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 silent! call feedkeys("gg0}%}\<C-G>}^\<Esc>00", 'tx') |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 call assert_equal('a}^de', getline(1)) |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 |
19170
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
26 " Error cases |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
27 call assert_fails('set langmap=aA,b', 'E357:') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
28 call assert_fails('set langmap=z;y;y;z', 'E358:') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
29 |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
30 " Map character > 256 |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
31 enew! |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
32 set langmap=āx,ăl,āx |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
33 call setline(1, ['abcde']) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
34 call feedkeys('gg2lā', 'tx') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
35 call assert_equal('abde', getline(1)) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
36 |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
37 " special characters in langmap |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
38 enew! |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
39 call setline(1, ['Hello World']) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
40 set langmap=\\;\\,,\\,\\; |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
41 call feedkeys('ggfo,', 'tx') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
42 call assert_equal(8, col('.')) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
43 call feedkeys(';', 'tx') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
44 call assert_equal(5, col('.')) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
45 set langmap& |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
46 set langmap=\\;\\,;\\,\\; |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
47 call feedkeys('ggfo,', 'tx') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
48 call assert_equal(8, col('.')) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
49 call feedkeys(';', 'tx') |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
50 call assert_equal(5, col('.')) |
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
51 |
30944
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
52 set langmap=RL |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
53 let g:counter = 0 |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
54 nnoremap L;L <Cmd>let g:counter += 1<CR> |
30986
360f286b5869
patch 9.0.0828: various typos
Bram Moolenaar <Bram@vim.org>
parents:
30944
diff
changeset
|
55 nnoremap <C-L> <Cmd>throw 'This mapping should not be triggered'<CR> |
30944
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
56 |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
57 " 'langmap' is applied to keys without modifiers when matching a mapping |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
58 call feedkeys('R;R', 'tx') |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
59 call assert_equal(1, g:counter) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
60 nunmap L;L |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
61 unlet g:counter |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
62 |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
63 delete |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
64 call assert_equal('', getline(1)) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
65 undo |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
66 call assert_equal('Hello World', getline(1)) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
67 " 'langmap' does not change Ctrl-R to Ctrl-L for consistency |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
68 call feedkeys("\<*C-R>", 'tx') |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
69 call assert_equal('', getline(1)) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
70 |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
71 set langmap=6L |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
72 undo |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
73 setlocal bufhidden=hide |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
74 let oldbuf = bufnr() |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
75 enew |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
76 call assert_notequal(oldbuf, bufnr()) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
77 " 'langmap' does not change Ctrl-6 to Ctrl-L for consistency |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
78 " Ctrl-6 becomes Ctrl-^ after merging the Ctrl modifier |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
79 call feedkeys("\<*C-6>", 'tx') |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
80 call assert_equal(oldbuf, bufnr()) |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
81 setlocal bufhidden& |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
82 |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
83 nunmap <C-L> |
109aa4913cba
patch 9.0.0806: 'langmap' works differently when there are modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21765
diff
changeset
|
84 |
19170
ad40333f2ec0
patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
85 set langmap& |
7703
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 quit! |
39251e981d1f
commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
87 endfunc |
21765
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19170
diff
changeset
|
88 |
08940efa6b4e
patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents:
19170
diff
changeset
|
89 " vim: shiftwidth=2 sts=2 expandtab |