mirror of
https://github.com/vim/vim.git
synced 2025-08-30 20:43:35 -04:00
patch 9.0.0753: some Ex commands are not in the help index
Problem: Some Ex commands are not in the help index. Solution: Add the missing commands. Add a script to check all Ex commands are in the help index. (Yee Cheng Chin, closes #11371)
This commit is contained in:
parent
7e120ffccb
commit
b77bdce120
@ -1150,7 +1150,7 @@ tag command action ~
|
|||||||
|:!!| :!! repeat last ":!" command
|
|:!!| :!! repeat last ":!" command
|
||||||
|:#| :# same as ":number"
|
|:#| :# same as ":number"
|
||||||
|:&| :& repeat last ":substitute"
|
|:&| :& repeat last ":substitute"
|
||||||
|:star| :* execute contents of a register
|
|:star| :* use the last Visual area, like :'<,'>
|
||||||
|:<| :< shift lines one 'shiftwidth' left
|
|:<| :< shift lines one 'shiftwidth' left
|
||||||
|:=| := print the last line number
|
|:=| := print the last line number
|
||||||
|:>| :> shift lines one 'shiftwidth' right
|
|:>| :> shift lines one 'shiftwidth' right
|
||||||
@ -1277,6 +1277,7 @@ tag command action ~
|
|||||||
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
||||||
|:def| :def define a Vim9 user function
|
|:def| :def define a Vim9 user function
|
||||||
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|
||||||
|
|:defer| :defer call function when current function is done
|
||||||
|:delcommand| :delc[ommand] delete user-defined command
|
|:delcommand| :delc[ommand] delete user-defined command
|
||||||
|:delfunction| :delf[unction] delete a user function
|
|:delfunction| :delf[unction] delete a user function
|
||||||
|:delmarks| :delm[arks] delete marks
|
|:delmarks| :delm[arks] delete marks
|
||||||
@ -1308,6 +1309,7 @@ tag command action ~
|
|||||||
|:echohl| :echoh[l] set highlighting for echo commands
|
|:echohl| :echoh[l] set highlighting for echo commands
|
||||||
|:echomsg| :echom[sg] same as :echo, put message in history
|
|:echomsg| :echom[sg] same as :echo, put message in history
|
||||||
|:echon| :echon same as :echo, but without <EOL>
|
|:echon| :echon same as :echo, but without <EOL>
|
||||||
|
|:echowindow| :echow[indow] same as :echomsg, but use a popup window
|
||||||
|:else| :el[se] part of an :if command
|
|:else| :el[se] part of an :if command
|
||||||
|:elseif| :elsei[f] part of an :if command
|
|:elseif| :elsei[f] part of an :if command
|
||||||
|:emenu| :em[enu] execute a menu by name
|
|:emenu| :em[enu] execute a menu by name
|
||||||
@ -1356,6 +1358,7 @@ tag command action ~
|
|||||||
|:highlight| :hi[ghlight] specify highlighting methods
|
|:highlight| :hi[ghlight] specify highlighting methods
|
||||||
|:hide| :hid[e] hide current buffer for a command
|
|:hide| :hid[e] hide current buffer for a command
|
||||||
|:history| :his[tory] print a history list
|
|:history| :his[tory] print a history list
|
||||||
|
|:horizontal| :hor[izontal] following window command work horizontally
|
||||||
|:insert| :i[nsert] insert text
|
|:insert| :i[nsert] insert text
|
||||||
|:iabbrev| :ia[bbrev] like ":abbrev" but for Insert mode
|
|:iabbrev| :ia[bbrev] like ":abbrev" but for Insert mode
|
||||||
|:iabclear| :iabc[lear] like ":abclear" but for Insert mode
|
|:iabclear| :iabc[lear] like ":abclear" but for Insert mode
|
||||||
|
@ -91,6 +91,7 @@ NEW_TESTS = \
|
|||||||
test_cjk_linebreak \
|
test_cjk_linebreak \
|
||||||
test_clientserver \
|
test_clientserver \
|
||||||
test_close_count \
|
test_close_count \
|
||||||
|
test_cmd_lists \
|
||||||
test_cmdline \
|
test_cmdline \
|
||||||
test_cmdmods \
|
test_cmdmods \
|
||||||
test_cmdwin \
|
test_cmdwin \
|
||||||
@ -351,6 +352,7 @@ NEW_TESTS_RES = \
|
|||||||
test_cjk_linebreak.res \
|
test_cjk_linebreak.res \
|
||||||
test_clientserver.res \
|
test_clientserver.res \
|
||||||
test_close_count.res \
|
test_close_count.res \
|
||||||
|
test_cmd_lists.res \
|
||||||
test_cmdline.res \
|
test_cmdline.res \
|
||||||
test_cmdmods.res \
|
test_cmdmods.res \
|
||||||
test_cmdwin.res \
|
test_cmdwin.res \
|
||||||
|
68
src/testdir/test_cmd_lists.vim
Normal file
68
src/testdir/test_cmd_lists.vim
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
" Test to verify that the cmd list in runtime/doc/index.txt contains all of
|
||||||
|
" the commands in src/ex_cmds.h. It doesn't map the other way round because
|
||||||
|
" index.txt contains some shorthands like :!! which are useful to list, but
|
||||||
|
" they don't exist as an independent entry in src/ex_cmds.h.
|
||||||
|
"
|
||||||
|
" Currently this just checks for existence, and we aren't checking for whether
|
||||||
|
" they are sorted in the index, or whether the substring needed (e.g.
|
||||||
|
" 'defc[ompile]') is correct or not.
|
||||||
|
|
||||||
|
func Test_cmd_lists()
|
||||||
|
|
||||||
|
" Create a list of the commands in ex_cmds.h:CMD_index.
|
||||||
|
enew!
|
||||||
|
read ../ex_cmds.h
|
||||||
|
1,/^enum CMD_index$/d
|
||||||
|
call search('^};$')
|
||||||
|
.,$d
|
||||||
|
v/^EXCMD/d
|
||||||
|
%s/^.*"\(\S\+\)".*$/\1/
|
||||||
|
" Special case ':*' because it's represented as ':star'
|
||||||
|
%s/^\*$/star/
|
||||||
|
sort u
|
||||||
|
let l:command_list = getline(1, '$')
|
||||||
|
|
||||||
|
" Verify that the ':help ex-cmd-index' list contains all known commands.
|
||||||
|
enew!
|
||||||
|
if filereadable('../../doc/index.txt')
|
||||||
|
" unpacked MS-Windows zip archive
|
||||||
|
read ../../doc/index.txt
|
||||||
|
else
|
||||||
|
read ../../runtime/doc/index.txt
|
||||||
|
endif
|
||||||
|
call search('\*ex-cmd-index\*')
|
||||||
|
1,.d
|
||||||
|
v/^|:/d
|
||||||
|
%s/^|:\(\S*\)|.*/\1/
|
||||||
|
sort u
|
||||||
|
norm gg
|
||||||
|
let l:missing_cmds = []
|
||||||
|
for cmd in l:command_list
|
||||||
|
" Reserved Vim 9 commands or other script-only syntax aren't useful to
|
||||||
|
" document as Ex commands.
|
||||||
|
let l:vim9cmds = [
|
||||||
|
\ 'abstract',
|
||||||
|
\ 'class',
|
||||||
|
\ 'endclass',
|
||||||
|
\ 'endenum',
|
||||||
|
\ 'endinterface',
|
||||||
|
\ 'enum',
|
||||||
|
\ 'interface',
|
||||||
|
\ 'static',
|
||||||
|
\ 'type',
|
||||||
|
\ '++',
|
||||||
|
\ '--',
|
||||||
|
\ '{',
|
||||||
|
\ '}']
|
||||||
|
if index(l:vim9cmds, cmd) != -1
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
|
||||||
|
if search('^\V' .. cmd .. '\v$', 'cW') == 0
|
||||||
|
call add(l:missing_cmds, ':' .. cmd)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call assert_equal(0, len(l:missing_cmds), "Missing commands from `:help ex-cmd-index`: " .. string(l:missing_cmds))
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
753,
|
||||||
/**/
|
/**/
|
||||||
752,
|
752,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user