Mercurial > vim
annotate src/testdir/test_cmdmods.vim @ 35232:da656ac4b30e v9.1.0428
patch 9.1.0428: Tag guessing leaves wrong search history with very short names
Commit: https://github.com/vim/vim/commit/42cd192daa4b7f29131c7be1beaecb6067e96266
Author: zeertzjq <zeertzjq@outlook.com>
Date: Tue May 21 17:19:58 2024 +0200
patch 9.1.0428: Tag guessing leaves wrong search history with very short names
Problem: Tag guessing leaves wrong search history with very short names
(after 9.1.0426).
Solution: Use the correct variable for pattern length (zeertzjq).
closes: #14817
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 21 May 2024 17:30:13 +0200 |
parents | cda1a8a06777 |
children | 57a9f3d2ea2b |
rev | line source |
---|---|
30986
360f286b5869
patch 9.0.0828: various typos
Bram Moolenaar <Bram@vim.org>
parents:
30174
diff
changeset
|
1 " Test for all command modifiers in |
30174
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 def Test_cmdmods_array() |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 # Get all the command modifiers from ex_cmds.h. |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 var lines = readfile('../ex_cmds.h')->filter((_, l) => l =~ 'ex_wrongmodifier,') |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 var cmds = lines->map((_, v) => substitute(v, '.*"\(\k*\)".*', '\1', '')) |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
7 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 # :hide is both a command and a modifier |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 cmds->extend(['hide']) |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 |
34993
cda1a8a06777
patch 9.1.0352: Finding cmd modifiers and cmdline-specials is inefficient
Christian Brabandt <cb@256bit.org>
parents:
31335
diff
changeset
|
11 # Get the entries of cmdmod_info_tab[] in ex_docmd.c |
30174
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 edit ../ex_docmd.c |
34993
cda1a8a06777
patch 9.1.0352: Finding cmd modifiers and cmdline-specials is inefficient
Christian Brabandt <cb@256bit.org>
parents:
31335
diff
changeset
|
13 var top = search('^static cmdmod_info_T cmdmod_info_tab[') + 1 |
cda1a8a06777
patch 9.1.0352: Finding cmd modifiers and cmdline-specials is inefficient
Christian Brabandt <cb@256bit.org>
parents:
31335
diff
changeset
|
14 var bot = search('^};.*\/\/ cmdmod_info_tab') - 1 |
30174
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 lines = getline(top, bot) |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 var mods = lines->map((_, v) => substitute(v, '.*"\(\k*\)".*', '\1', '')) |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 |
31335
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
18 # Add the other commands that use ex_wrongmodifier. |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
19 mods->extend([ |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
20 'endclass', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
21 'endenum', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
22 'endinterface', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
23 'public', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
24 'static', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
25 'this', |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
26 ]) |
5acc0d2cf4f7
patch 9.0.1001: classes are not documented or implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30986
diff
changeset
|
27 |
30174
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
28 # Check the lists are equal. Convert them to a dict to get a clearer error |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 # message. |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
30 var cmds_dict = {} |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 for v in cmds |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 cmds_dict[v] = 1 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 endfor |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 var mods_dict = {} |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 for v in mods |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
36 mods_dict[v] = 1 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 endfor |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 assert_equal(cmds_dict, mods_dict) |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
39 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
40 bwipe! |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 enddef |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
43 |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 " vim: shiftwidth=2 sts=2 expandtab |
3564cddda2a5
patch 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
45 |