" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2020 Mar 19
+" Last Change: 2020 Mar 29
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
call s:BMShow()
else
let name = expand("<afile>")
- let num = expand("<abuf>")
+ let num = expand("<abuf>") + 0 " add zero to convert to a number type
if s:BMCanAdd(name, num)
call <SID>BMFilename(name, num)
let s:bmenu_count += 1
let orig_buffer_menus = execute("nmenu Buffers")
+ " Test that regular new buffer results in a new buffer menu item.
+ new
+ let new_buffer_menus = execute('nmenu Buffers')
+ call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(new_buffer_menus, "\n")))
+ bwipe!
+ call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
+
" Make a new command-line window, test that it does not create a new buffer
" menu.
call feedkeys("q::let cmdline_buffer_menus=execute('nmenu Buffers')\<CR>:q\<CR>", 'ntx')
- call assert_equal(len(split(orig_buffer_menus, "\n")), len(split(cmdline_buffer_menus, "\n")))
+ call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(cmdline_buffer_menus, "\n")))
call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
if has('terminal')
" item.
terminal
let term_buffer_menus = execute('nmenu Buffers')
- call assert_equal(len(split(orig_buffer_menus, "\n")), len(split(term_buffer_menus, "\n")))
+ call assert_equal(len(split(orig_buffer_menus, "\n")) + 2, len(split(term_buffer_menus, "\n")))
bwipe!
call assert_equal(orig_buffer_menus, execute("nmenu Buffers"))
endif
" Test for menu item completion in command line
func Test_menu_expand()
+ " Make sure we don't have stale menu items like Buffers menu.
+ source $VIMRUNTIME/delmenu.vim
+
" Create the menu itmes for test
menu Dummy.Nothing lll
for i in range(1, 4)