mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 19:38:20 +00:00
test: rename (meths, funcs) -> (api, fn)
This commit is contained in:
@@ -2,8 +2,8 @@ local helpers = require('test.functional.helpers')(after_each)
|
||||
|
||||
local eq = helpers.eq
|
||||
local clear = helpers.clear
|
||||
local funcs = helpers.funcs
|
||||
local meths = helpers.meths
|
||||
local fn = helpers.fn
|
||||
local api = helpers.api
|
||||
local command = helpers.command
|
||||
local exc_exec = helpers.exc_exec
|
||||
local get_pathsep = helpers.get_pathsep
|
||||
@@ -65,12 +65,12 @@ end
|
||||
describe('bufname() function', function()
|
||||
it('returns empty string when buffer was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq('', funcs.bufname(2))
|
||||
eq('', funcs.bufname('non-existent-buffer'))
|
||||
eq('', funcs.bufname('#'))
|
||||
eq('', fn.bufname(2))
|
||||
eq('', fn.bufname('non-existent-buffer'))
|
||||
eq('', fn.bufname('#'))
|
||||
command('edit ' .. fname2)
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq('', funcs.bufname('X'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq('', fn.bufname('X'))
|
||||
end)
|
||||
before_each(function()
|
||||
mkdir(dirname)
|
||||
@@ -79,80 +79,80 @@ describe('bufname() function', function()
|
||||
rmdir(dirname)
|
||||
end)
|
||||
it('returns expected buffer name', function()
|
||||
eq('', funcs.bufname('%')) -- Buffer has no name yet
|
||||
eq('', fn.bufname('%')) -- Buffer has no name yet
|
||||
command('file ' .. fname)
|
||||
local wd = vim.uv.cwd()
|
||||
local sep = get_pathsep()
|
||||
local curdirname = funcs.fnamemodify(wd, ':t')
|
||||
local curdirname = fn.fnamemodify(wd, ':t')
|
||||
for _, arg in ipairs({ '%', 1, 'X', wd }) do
|
||||
eq(fname, funcs.bufname(arg))
|
||||
meths.nvim_set_current_dir('..')
|
||||
eq(curdirname .. sep .. fname, funcs.bufname(arg))
|
||||
meths.nvim_set_current_dir(curdirname)
|
||||
meths.nvim_set_current_dir(dirname)
|
||||
eq(wd .. sep .. fname, funcs.bufname(arg))
|
||||
meths.nvim_set_current_dir('..')
|
||||
eq(fname, funcs.bufname(arg))
|
||||
eq(fname, fn.bufname(arg))
|
||||
api.nvim_set_current_dir('..')
|
||||
eq(curdirname .. sep .. fname, fn.bufname(arg))
|
||||
api.nvim_set_current_dir(curdirname)
|
||||
api.nvim_set_current_dir(dirname)
|
||||
eq(wd .. sep .. fname, fn.bufname(arg))
|
||||
api.nvim_set_current_dir('..')
|
||||
eq(fname, fn.bufname(arg))
|
||||
command('enew')
|
||||
end
|
||||
eq('', funcs.bufname('%'))
|
||||
eq('', funcs.bufname('$'))
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq('', fn.bufname('%'))
|
||||
eq('', fn.bufname('$'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('bufnr() function', function()
|
||||
it('returns -1 when buffer was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq(-1, funcs.bufnr(2))
|
||||
eq(-1, funcs.bufnr('non-existent-buffer'))
|
||||
eq(-1, funcs.bufnr('#'))
|
||||
eq(-1, fn.bufnr(2))
|
||||
eq(-1, fn.bufnr('non-existent-buffer'))
|
||||
eq(-1, fn.bufnr('#'))
|
||||
command('edit ' .. fname2)
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq(-1, funcs.bufnr('X'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq(-1, fn.bufnr('X'))
|
||||
end)
|
||||
it('returns expected buffer number', function()
|
||||
eq(1, funcs.bufnr('%'))
|
||||
eq(1, fn.bufnr('%'))
|
||||
command('file ' .. fname)
|
||||
local wd = vim.uv.cwd()
|
||||
local curdirname = funcs.fnamemodify(wd, ':t')
|
||||
eq(1, funcs.bufnr(fname))
|
||||
eq(1, funcs.bufnr(wd))
|
||||
eq(1, funcs.bufnr(curdirname))
|
||||
eq(1, funcs.bufnr('X'))
|
||||
local curdirname = fn.fnamemodify(wd, ':t')
|
||||
eq(1, fn.bufnr(fname))
|
||||
eq(1, fn.bufnr(wd))
|
||||
eq(1, fn.bufnr(curdirname))
|
||||
eq(1, fn.bufnr('X'))
|
||||
end)
|
||||
it('returns number of last buffer with "$"', function()
|
||||
eq(1, funcs.bufnr('$'))
|
||||
eq(1, fn.bufnr('$'))
|
||||
command('new')
|
||||
eq(2, funcs.bufnr('$'))
|
||||
eq(2, fn.bufnr('$'))
|
||||
command('new')
|
||||
eq(3, funcs.bufnr('$'))
|
||||
eq(3, fn.bufnr('$'))
|
||||
command('only')
|
||||
eq(3, funcs.bufnr('$'))
|
||||
eq(3, funcs.bufnr('%'))
|
||||
eq(3, fn.bufnr('$'))
|
||||
eq(3, fn.bufnr('%'))
|
||||
command('buffer 1')
|
||||
eq(3, funcs.bufnr('$'))
|
||||
eq(1, funcs.bufnr('%'))
|
||||
eq(3, fn.bufnr('$'))
|
||||
eq(1, fn.bufnr('%'))
|
||||
command('bwipeout 2')
|
||||
eq(3, funcs.bufnr('$'))
|
||||
eq(1, funcs.bufnr('%'))
|
||||
eq(3, fn.bufnr('$'))
|
||||
eq(1, fn.bufnr('%'))
|
||||
command('bwipeout 3')
|
||||
eq(1, funcs.bufnr('$'))
|
||||
eq(1, funcs.bufnr('%'))
|
||||
eq(1, fn.bufnr('$'))
|
||||
eq(1, fn.bufnr('%'))
|
||||
command('new')
|
||||
eq(4, funcs.bufnr('$'))
|
||||
eq(4, fn.bufnr('$'))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('bufwinnr() function', function()
|
||||
it('returns -1 when buffer was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq(-1, funcs.bufwinnr(2))
|
||||
eq(-1, funcs.bufwinnr('non-existent-buffer'))
|
||||
eq(-1, funcs.bufwinnr('#'))
|
||||
eq(-1, fn.bufwinnr(2))
|
||||
eq(-1, fn.bufwinnr('non-existent-buffer'))
|
||||
eq(-1, fn.bufwinnr('#'))
|
||||
command('split ' .. fname2) -- It would be OK if there was one window
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq(-1, funcs.bufwinnr('X'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq(-1, fn.bufwinnr('X'))
|
||||
end)
|
||||
before_each(function()
|
||||
mkdir(dirname)
|
||||
@@ -161,105 +161,105 @@ describe('bufwinnr() function', function()
|
||||
rmdir(dirname)
|
||||
end)
|
||||
it('returns expected window number', function()
|
||||
eq(1, funcs.bufwinnr('%'))
|
||||
eq(1, fn.bufwinnr('%'))
|
||||
command('file ' .. fname)
|
||||
command('vsplit')
|
||||
command('split ' .. fname2)
|
||||
eq(2, funcs.bufwinnr(fname))
|
||||
eq(1, funcs.bufwinnr(fname2))
|
||||
eq(-1, funcs.bufwinnr(fname:sub(1, #fname - 1)))
|
||||
meths.nvim_set_current_dir(dirname)
|
||||
eq(2, funcs.bufwinnr(fname))
|
||||
eq(1, funcs.bufwinnr(fname2))
|
||||
eq(-1, funcs.bufwinnr(fname:sub(1, #fname - 1)))
|
||||
eq(1, funcs.bufwinnr('%'))
|
||||
eq(2, funcs.bufwinnr(1))
|
||||
eq(1, funcs.bufwinnr(2))
|
||||
eq(-1, funcs.bufwinnr(3))
|
||||
eq(1, funcs.bufwinnr('$'))
|
||||
eq(2, fn.bufwinnr(fname))
|
||||
eq(1, fn.bufwinnr(fname2))
|
||||
eq(-1, fn.bufwinnr(fname:sub(1, #fname - 1)))
|
||||
api.nvim_set_current_dir(dirname)
|
||||
eq(2, fn.bufwinnr(fname))
|
||||
eq(1, fn.bufwinnr(fname2))
|
||||
eq(-1, fn.bufwinnr(fname:sub(1, #fname - 1)))
|
||||
eq(1, fn.bufwinnr('%'))
|
||||
eq(2, fn.bufwinnr(1))
|
||||
eq(1, fn.bufwinnr(2))
|
||||
eq(-1, fn.bufwinnr(3))
|
||||
eq(1, fn.bufwinnr('$'))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('getbufline() function', function()
|
||||
it('returns empty list when buffer was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq({}, funcs.getbufline(2, 1))
|
||||
eq({}, funcs.getbufline('non-existent-buffer', 1))
|
||||
eq({}, funcs.getbufline('#', 1))
|
||||
eq({}, fn.getbufline(2, 1))
|
||||
eq({}, fn.getbufline('non-existent-buffer', 1))
|
||||
eq({}, fn.getbufline('#', 1))
|
||||
command('edit ' .. fname2)
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq({}, funcs.getbufline('X', 1))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq({}, fn.getbufline('X', 1))
|
||||
end)
|
||||
it('returns empty list when range is invalid', function()
|
||||
eq({}, funcs.getbufline(1, 0))
|
||||
meths.nvim_buf_set_lines(0, 0, 1, false, { 'foo', 'bar', 'baz' })
|
||||
eq({}, funcs.getbufline(1, 2, 1))
|
||||
eq({}, funcs.getbufline(1, -10, -20))
|
||||
eq({}, funcs.getbufline(1, -2, -1))
|
||||
eq({}, funcs.getbufline(1, -1, 9999))
|
||||
eq({}, fn.getbufline(1, 0))
|
||||
api.nvim_buf_set_lines(0, 0, 1, false, { 'foo', 'bar', 'baz' })
|
||||
eq({}, fn.getbufline(1, 2, 1))
|
||||
eq({}, fn.getbufline(1, -10, -20))
|
||||
eq({}, fn.getbufline(1, -2, -1))
|
||||
eq({}, fn.getbufline(1, -1, 9999))
|
||||
end)
|
||||
it('returns expected lines', function()
|
||||
meths.nvim_set_option_value('hidden', true, {})
|
||||
api.nvim_set_option_value('hidden', true, {})
|
||||
command('file ' .. fname)
|
||||
meths.nvim_buf_set_lines(0, 0, 1, false, { 'foo\0', '\0bar', 'baz' })
|
||||
api.nvim_buf_set_lines(0, 0, 1, false, { 'foo\0', '\0bar', 'baz' })
|
||||
command('edit ' .. fname2)
|
||||
meths.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
|
||||
eq({ 'foo\n', '\nbar', 'baz' }, funcs.getbufline(1, 1, 9999))
|
||||
eq({ 'abc\n', '\ndef', 'ghi' }, funcs.getbufline(2, 1, 9999))
|
||||
eq({ 'foo\n', '\nbar', 'baz' }, funcs.getbufline(1, 1, '$'))
|
||||
eq({ 'baz' }, funcs.getbufline(1, '$', '$'))
|
||||
eq({ 'baz' }, funcs.getbufline(1, '$', 9999))
|
||||
api.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
|
||||
eq({ 'foo\n', '\nbar', 'baz' }, fn.getbufline(1, 1, 9999))
|
||||
eq({ 'abc\n', '\ndef', 'ghi' }, fn.getbufline(2, 1, 9999))
|
||||
eq({ 'foo\n', '\nbar', 'baz' }, fn.getbufline(1, 1, '$'))
|
||||
eq({ 'baz' }, fn.getbufline(1, '$', '$'))
|
||||
eq({ 'baz' }, fn.getbufline(1, '$', 9999))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('getbufvar() function', function()
|
||||
it('returns empty list when buffer was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq('', funcs.getbufvar(2, '&autoindent'))
|
||||
eq('', funcs.getbufvar('non-existent-buffer', '&autoindent'))
|
||||
eq('', funcs.getbufvar('#', '&autoindent'))
|
||||
eq('', fn.getbufvar(2, '&autoindent'))
|
||||
eq('', fn.getbufvar('non-existent-buffer', '&autoindent'))
|
||||
eq('', fn.getbufvar('#', '&autoindent'))
|
||||
command('edit ' .. fname2)
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq('', funcs.getbufvar('X', '&autoindent'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq('', fn.getbufvar('X', '&autoindent'))
|
||||
end)
|
||||
it('returns empty list when variable/option/etc was not found', function()
|
||||
command('file ' .. fname)
|
||||
eq('', funcs.getbufvar(1, '&autondent'))
|
||||
eq('', funcs.getbufvar(1, 'changedtic'))
|
||||
eq('', fn.getbufvar(1, '&autondent'))
|
||||
eq('', fn.getbufvar(1, 'changedtic'))
|
||||
end)
|
||||
it('returns expected option value', function()
|
||||
eq(0, funcs.getbufvar(1, '&autoindent'))
|
||||
eq(0, funcs.getbufvar(1, '&l:autoindent'))
|
||||
eq(0, funcs.getbufvar(1, '&g:autoindent'))
|
||||
eq(0, fn.getbufvar(1, '&autoindent'))
|
||||
eq(0, fn.getbufvar(1, '&l:autoindent'))
|
||||
eq(0, fn.getbufvar(1, '&g:autoindent'))
|
||||
-- Also works with global-only options
|
||||
eq(1, funcs.getbufvar(1, '&hidden'))
|
||||
eq(1, funcs.getbufvar(1, '&l:hidden'))
|
||||
eq(1, funcs.getbufvar(1, '&g:hidden'))
|
||||
eq(1, fn.getbufvar(1, '&hidden'))
|
||||
eq(1, fn.getbufvar(1, '&l:hidden'))
|
||||
eq(1, fn.getbufvar(1, '&g:hidden'))
|
||||
-- Also works with window-local options
|
||||
eq(0, funcs.getbufvar(1, '&number'))
|
||||
eq(0, funcs.getbufvar(1, '&l:number'))
|
||||
eq(0, funcs.getbufvar(1, '&g:number'))
|
||||
eq(0, fn.getbufvar(1, '&number'))
|
||||
eq(0, fn.getbufvar(1, '&l:number'))
|
||||
eq(0, fn.getbufvar(1, '&g:number'))
|
||||
command('new')
|
||||
-- But with window-local options it probably does not what you expect
|
||||
command('setl number')
|
||||
-- (note that current window’s buffer is 2, but getbufvar() receives 1)
|
||||
eq({ id = 2 }, meths.nvim_win_get_buf(0))
|
||||
eq(1, funcs.getbufvar(1, '&number'))
|
||||
eq(1, funcs.getbufvar(1, '&l:number'))
|
||||
eq({ id = 2 }, api.nvim_win_get_buf(0))
|
||||
eq(1, fn.getbufvar(1, '&number'))
|
||||
eq(1, fn.getbufvar(1, '&l:number'))
|
||||
-- You can get global value though, if you find this useful.
|
||||
eq(0, funcs.getbufvar(1, '&g:number'))
|
||||
eq(0, fn.getbufvar(1, '&g:number'))
|
||||
end)
|
||||
it('returns expected variable value', function()
|
||||
eq(2, funcs.getbufvar(1, 'changedtick'))
|
||||
meths.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
|
||||
eq(3, funcs.getbufvar(1, 'changedtick'))
|
||||
meths.nvim_buf_set_var(0, 'test', true)
|
||||
eq(true, funcs.getbufvar(1, 'test'))
|
||||
eq({ test = true, changedtick = 3 }, funcs.getbufvar(1, ''))
|
||||
eq(2, fn.getbufvar(1, 'changedtick'))
|
||||
api.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
|
||||
eq(3, fn.getbufvar(1, 'changedtick'))
|
||||
api.nvim_buf_set_var(0, 'test', true)
|
||||
eq(true, fn.getbufvar(1, 'test'))
|
||||
eq({ test = true, changedtick = 3 }, fn.getbufvar(1, ''))
|
||||
command('new')
|
||||
eq(3, funcs.getbufvar(1, 'changedtick'))
|
||||
eq(true, funcs.getbufvar(1, 'test'))
|
||||
eq({ test = true, changedtick = 3 }, funcs.getbufvar(1, ''))
|
||||
eq(3, fn.getbufvar(1, 'changedtick'))
|
||||
eq(true, fn.getbufvar(1, 'test'))
|
||||
eq({ test = true, changedtick = 3 }, fn.getbufvar(1, ''))
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -273,50 +273,50 @@ describe('setbufvar() function', function()
|
||||
)
|
||||
eq(0, exc_exec('call setbufvar("#", "&autoindent", 0)'))
|
||||
command('edit ' .. fname2)
|
||||
eq(2, funcs.bufnr('%'))
|
||||
eq(2, fn.bufnr('%'))
|
||||
eq(
|
||||
'Vim(call):E93: More than one match for X',
|
||||
exc_exec('call setbufvar("X", "&autoindent", 0)')
|
||||
)
|
||||
end)
|
||||
it('may set options, including window-local and global values', function()
|
||||
local buf1 = meths.nvim_get_current_buf()
|
||||
eq(false, meths.nvim_get_option_value('number', {}))
|
||||
local buf1 = api.nvim_get_current_buf()
|
||||
eq(false, api.nvim_get_option_value('number', {}))
|
||||
command('split')
|
||||
command('new')
|
||||
eq(2, meths.nvim_buf_get_number(meths.nvim_win_get_buf(0)))
|
||||
funcs.setbufvar(1, '&number', true)
|
||||
local windows = meths.nvim_tabpage_list_wins(0)
|
||||
eq(false, meths.nvim_get_option_value('number', { win = windows[1].id }))
|
||||
eq(true, meths.nvim_get_option_value('number', { win = windows[2].id }))
|
||||
eq(false, meths.nvim_get_option_value('number', { win = windows[3].id }))
|
||||
eq(false, meths.nvim_get_option_value('number', { win = meths.nvim_get_current_win().id }))
|
||||
eq(2, api.nvim_buf_get_number(api.nvim_win_get_buf(0)))
|
||||
fn.setbufvar(1, '&number', true)
|
||||
local windows = api.nvim_tabpage_list_wins(0)
|
||||
eq(false, api.nvim_get_option_value('number', { win = windows[1].id }))
|
||||
eq(true, api.nvim_get_option_value('number', { win = windows[2].id }))
|
||||
eq(false, api.nvim_get_option_value('number', { win = windows[3].id }))
|
||||
eq(false, api.nvim_get_option_value('number', { win = api.nvim_get_current_win().id }))
|
||||
|
||||
eq(true, meths.nvim_get_option_value('hidden', {}))
|
||||
funcs.setbufvar(1, '&hidden', 0)
|
||||
eq(false, meths.nvim_get_option_value('hidden', {}))
|
||||
eq(true, api.nvim_get_option_value('hidden', {}))
|
||||
fn.setbufvar(1, '&hidden', 0)
|
||||
eq(false, api.nvim_get_option_value('hidden', {}))
|
||||
|
||||
eq(false, meths.nvim_get_option_value('autoindent', { buf = buf1.id }))
|
||||
funcs.setbufvar(1, '&autoindent', true)
|
||||
eq(true, meths.nvim_get_option_value('autoindent', { buf = buf1.id }))
|
||||
eq(false, api.nvim_get_option_value('autoindent', { buf = buf1.id }))
|
||||
fn.setbufvar(1, '&autoindent', true)
|
||||
eq(true, api.nvim_get_option_value('autoindent', { buf = buf1.id }))
|
||||
eq('Vim(call):E355: Unknown option: xxx', exc_exec('call setbufvar(1, "&xxx", 0)'))
|
||||
end)
|
||||
it('may set variables', function()
|
||||
local buf1 = meths.nvim_get_current_buf()
|
||||
local buf1 = api.nvim_get_current_buf()
|
||||
command('split')
|
||||
command('new')
|
||||
eq(2, meths.nvim_buf_get_number(0))
|
||||
funcs.setbufvar(1, 'number', true)
|
||||
eq(true, meths.nvim_buf_get_var(buf1, 'number'))
|
||||
eq(2, api.nvim_buf_get_number(0))
|
||||
fn.setbufvar(1, 'number', true)
|
||||
eq(true, api.nvim_buf_get_var(buf1, 'number'))
|
||||
eq('Vim(call):E461: Illegal variable name: b:', exc_exec('call setbufvar(1, "", 0)'))
|
||||
eq(true, meths.nvim_buf_get_var(buf1, 'number'))
|
||||
eq(true, api.nvim_buf_get_var(buf1, 'number'))
|
||||
eq(
|
||||
'Vim:E46: Cannot change read-only variable "b:changedtick"',
|
||||
pcall_err(funcs.setbufvar, 1, 'changedtick', true)
|
||||
pcall_err(fn.setbufvar, 1, 'changedtick', true)
|
||||
)
|
||||
eq(2, funcs.getbufvar(1, 'changedtick'))
|
||||
eq(2, fn.getbufvar(1, 'changedtick'))
|
||||
end)
|
||||
it('throws error when setting a string option to a boolean value vim-patch:9.0.0090', function()
|
||||
eq('Vim:E928: String required', pcall_err(funcs.setbufvar, '', '&errorformat', true))
|
||||
eq('Vim:E928: String required', pcall_err(fn.setbufvar, '', '&errorformat', true))
|
||||
end)
|
||||
end)
|
||||
|
Reference in New Issue
Block a user