mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 09:26:30 +00:00
Merge pull request #15079 from shadmansaleh/feat/verbose_lua
feat(lua): add :verbose support for lua config
This commit is contained in:
@@ -15,6 +15,9 @@ local pcall_err = helpers.pcall_err
|
||||
local shallowcopy = helpers.shallowcopy
|
||||
local sleep = helpers.sleep
|
||||
|
||||
local sid_api_client = -9
|
||||
local sid_lua = -8
|
||||
|
||||
describe('nvim_get_keymap', function()
|
||||
before_each(clear)
|
||||
|
||||
@@ -340,7 +343,7 @@ describe('nvim_get_keymap', function()
|
||||
script=0,
|
||||
silent=0,
|
||||
expr=0,
|
||||
sid=0,
|
||||
sid=sid_lua,
|
||||
buffer=0,
|
||||
nowait=0,
|
||||
mode='n',
|
||||
@@ -357,7 +360,7 @@ describe('nvim_get_keymap', function()
|
||||
script=0,
|
||||
silent=0,
|
||||
expr=0,
|
||||
sid=0,
|
||||
sid=sid_api_client,
|
||||
buffer=0,
|
||||
nowait=0,
|
||||
mode='n',
|
||||
@@ -400,7 +403,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
to_return.silent = not opts.silent and 0 or 1
|
||||
to_return.nowait = not opts.nowait and 0 or 1
|
||||
to_return.expr = not opts.expr and 0 or 1
|
||||
to_return.sid = not opts.sid and 0 or opts.sid
|
||||
to_return.sid = not opts.sid and sid_api_client or opts.sid
|
||||
to_return.buffer = not opts.buffer and 0 or opts.buffer
|
||||
to_return.lnum = not opts.lnum and 0 or opts.lnum
|
||||
to_return.desc = opts.desc
|
||||
@@ -625,7 +628,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
it('interprets control sequences in expr-quotes correctly when called '
|
||||
..'inside vim', function()
|
||||
command([[call nvim_set_keymap('i', "\<space>", "\<tab>", {})]])
|
||||
eq(generate_mapargs('i', '<Space>', '\t', {}),
|
||||
eq(generate_mapargs('i', '<Space>', '\t', {sid=0}),
|
||||
get_mapargs('i', '<Space>'))
|
||||
feed('i ')
|
||||
eq({'\t'}, curbufmeths.get_lines(0, -1, 0))
|
||||
@@ -807,7 +810,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
local mapargs = funcs.maparg('asdf', 'n', false, true)
|
||||
assert.Truthy(type(mapargs.callback) == 'number', 'callback is not luaref number')
|
||||
mapargs.callback = nil
|
||||
eq(generate_mapargs('n', 'asdf', nil, {}), mapargs)
|
||||
eq(generate_mapargs('n', 'asdf', nil, {sid=sid_lua}), mapargs)
|
||||
end)
|
||||
|
||||
it('can make lua expr mappings', function()
|
||||
|
168
test/functional/ex_cmds/verbose_spec.lua
Normal file
168
test/functional/ex_cmds/verbose_spec.lua
Normal file
@@ -0,0 +1,168 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
|
||||
local clear = helpers.clear
|
||||
local eq = helpers.eq
|
||||
local exec = helpers.exec
|
||||
local exec_capture = helpers.exec_capture
|
||||
local write_file = helpers.write_file
|
||||
local call_viml_function = helpers.meths.call_function
|
||||
|
||||
describe('lua :verbose', function()
|
||||
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, helpers.get_pathsep(), script_file}
|
||||
|
||||
write_file(script_file, [[
|
||||
vim.api.nvim_set_option('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_exec("augroup test_group\
|
||||
autocmd!\
|
||||
autocmd FileType c setl cindent\
|
||||
augroup END\
|
||||
", false)
|
||||
|
||||
vim.api.nvim_command("command Bdelete :bd")
|
||||
vim.api.nvim_add_user_command("TestCommand", ":echo 'Hello'", {})
|
||||
|
||||
vim.api.nvim_exec ("\
|
||||
function Close_Window() abort\
|
||||
wincmd -\
|
||||
endfunction\
|
||||
", false)
|
||||
|
||||
local ret = vim.api.nvim_exec ("\
|
||||
function! s:return80()\
|
||||
return 80\
|
||||
endfunction\
|
||||
let &tw = s:return80()\
|
||||
", true)
|
||||
]])
|
||||
exec(':source '..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 keymap 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 keymap set by vim.keymap', 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 by vim.api.nvim_exec', 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 command defined by nvim_command', function()
|
||||
local result = exec_capture(':verbose command Bdelete')
|
||||
eq(string.format([[
|
||||
Name Args Address Complete Definition
|
||||
Bdelete 0 :bd
|
||||
Last set from %s line 13]],
|
||||
script_location), result)
|
||||
end)
|
||||
|
||||
it('"Last set" for command defined by nvim_add_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 14]],
|
||||
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 16
|
||||
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 22]],
|
||||
script_location), result)
|
||||
end)
|
||||
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('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]], result)
|
||||
end)
|
||||
end)
|
||||
|
Reference in New Issue
Block a user