123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- local t = require('test.testutil')
- local n = require('test.functional.testnvim')()
- local clear = n.clear
- local eq = t.eq
- local exec = n.exec
- local exec_capture = n.exec_capture
- local write_file = t.write_file
- local call_viml_function = n.api.nvim_call_function
- local function last_set_tests(cmd)
- local script_location, script_file
- -- All test cases below use the same nvim instance.
- setup(function()
- clear { args = { '-V1' } }
- script_file = 'test_verbose.lua'
- local current_dir = call_viml_function('getcwd', {})
- current_dir = call_viml_function('fnamemodify', { current_dir, ':~' })
- script_location = table.concat { current_dir, n.get_pathsep(), script_file }
- write_file(
- script_file,
- [[
- vim.api.nvim_set_option_value('hlsearch', false, {})
- vim.bo.expandtab = true
- vim.opt.number = true
- vim.api.nvim_set_keymap('n', '<leader>key1', ':echo "test"<cr>', {noremap = true})
- vim.keymap.set('n', '<leader>key2', ':echo "test"<cr>')
- vim.api.nvim_exec2("augroup test_group\
- autocmd!\
- autocmd FileType c setl cindent\
- augroup END\
- ", {})
- vim.api.nvim_create_autocmd('FileType', {
- group = 'test_group',
- pattern = 'cpp',
- command = 'setl cindent',
- })
- vim.api.nvim_exec2(':highlight TestHL1 guibg=Blue', {})
- vim.api.nvim_set_hl(0, 'TestHL2', { bg = 'Green' })
- vim.api.nvim_command("command Bdelete :bd")
- vim.api.nvim_create_user_command("TestCommand", ":echo 'Hello'", {})
- vim.api.nvim_exec2 ("\
- function Close_Window() abort\
- wincmd -\
- endfunction\
- ", {})
- local ret = vim.api.nvim_exec2 ("\
- function! s:return80()\
- return 80\
- endfunction\
- let &tw = s:return80()\
- ", {})
- ]]
- )
- exec(cmd .. ' ' .. script_file)
- end)
- teardown(function()
- os.remove(script_file)
- end)
- it('"Last set" for option set by Lua', function()
- local result = exec_capture(':verbose set hlsearch?')
- eq(
- string.format(
- [[
- nohlsearch
- Last set from %s line 1]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for option set by vim.o', function()
- local result = exec_capture(':verbose set expandtab?')
- eq(
- string.format(
- [[
- expandtab
- Last set from %s line 2]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for option set by vim.opt', function()
- local result = exec_capture(':verbose set number?')
- eq(
- string.format(
- [[
- number
- Last set from %s line 3]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for mapping set by Lua', function()
- local result = exec_capture(':verbose map <leader>key1')
- eq(
- string.format(
- [[
- n \key1 * :echo "test"<CR>
- Last set from %s line 4]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for mapping set by vim.keymap.set', function()
- local result = exec_capture(':verbose map <leader>key2')
- eq(
- string.format(
- [[
- n \key2 * :echo "test"<CR>
- Last set from %s line 5]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for autocmd set by nvim_exec2', function()
- local result = exec_capture(':verbose autocmd test_group Filetype c')
- eq(
- string.format(
- [[
- --- Autocommands ---
- test_group FileType
- c setl cindent
- Last set from %s line 7]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for autocmd set by nvim_create_autocmd', function()
- local result = exec_capture(':verbose autocmd test_group Filetype cpp')
- eq(
- string.format(
- [[
- --- Autocommands ---
- test_group FileType
- cpp setl cindent
- Last set from %s line 13]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for highlight group set by nvim_exec2', function()
- local result = exec_capture(':verbose highlight TestHL1')
- eq(
- string.format(
- [[
- TestHL1 xxx guibg=Blue
- Last set from %s line 19]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for highlight group set by nvim_set_hl', function()
- local result = exec_capture(':verbose highlight TestHL2')
- eq(
- string.format(
- [[
- TestHL2 xxx guibg=Green
- Last set from %s line 20]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for command defined by nvim_command', function()
- if cmd == 'luafile' then
- pending('nvim_command does not set the script context')
- end
- local result = exec_capture(':verbose command Bdelete')
- eq(
- string.format(
- [[
- Name Args Address Complete Definition
- Bdelete 0 :bd
- Last set from %s line 22]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for command defined by nvim_create_user_command', function()
- local result = exec_capture(':verbose command TestCommand')
- eq(
- string.format(
- [[
- Name Args Address Complete Definition
- TestCommand 0 :echo 'Hello'
- Last set from %s line 23]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" for function', function()
- local result = exec_capture(':verbose function Close_Window')
- eq(
- string.format(
- [[
- function Close_Window() abort
- Last set from %s line 25
- 1 wincmd -
- endfunction]],
- script_location
- ),
- result
- )
- end)
- it('"Last set" works with anonymous sid', function()
- local result = exec_capture(':verbose set tw?')
- eq(
- string.format(
- [[
- textwidth=80
- Last set from %s line 31]],
- script_location
- ),
- result
- )
- end)
- end
- describe('lua :verbose when using :source', function()
- last_set_tests('source')
- end)
- describe('lua :verbose when using :luafile', function()
- last_set_tests('luafile')
- end)
- describe('lua verbose:', function()
- local script_file
- setup(function()
- clear()
- script_file = 'test_luafile.lua'
- write_file(
- script_file,
- [[
- vim.api.nvim_set_option_value('hlsearch', false, {})
- ]]
- )
- exec(':source ' .. script_file)
- end)
- teardown(function()
- os.remove(script_file)
- end)
- it('is disabled when verbose = 0', function()
- local result = exec_capture(':verbose set hlsearch?')
- eq(
- [[
- nohlsearch
- Last set from Lua (run Nvim with -V1 for more details)]],
- result
- )
- end)
- end)
|