api/buffer: Add nvim_buf_get_changedtick method

This commit is contained in:
ZyX 2016-07-30 01:39:09 +03:00
parent 9752a333c3
commit 0eab7ac4b9
2 changed files with 37 additions and 5 deletions

View File

@ -411,10 +411,13 @@ end:
/// Gets a buffer-scoped (b:) variable.
///
/// @param buffer Buffer handle
/// @param name Variable name
/// @param[out] err Error details, if any
/// @return Variable value
/// @note Use nvim_buf_get_changedtick() for “variable” `b:changedtick`.
/// This method only gets variables from b: dictionary.
///
/// @param buffer The buffer handle
/// @param name The variable name
/// @param[out] err Details of an error that may have occurred
/// @return The variable value
Object nvim_buf_get_var(Buffer buffer, String name, Error *err)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
@ -426,6 +429,22 @@ Object nvim_buf_get_var(Buffer buffer, String name, Error *err)
return dict_get_value(buf->b_vars, name, err);
}
/// Gets a changed tick of a buffer
///
/// @param[in] buffer The buffer handle.
///
/// @return `b:changedtick` value.
Integer nvim_buf_get_changedtick(Buffer buffer, Error *err)
{
const buf_T *const buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return -1;
}
return buf->b_changedtick;
}
/// Sets a buffer-scoped (b:) variable
///
/// @param buffer Buffer handle

View File

@ -2,7 +2,9 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, nvim, buffer = helpers.clear, helpers.nvim, helpers.buffer
local curbuf, curwin, eq = helpers.curbuf, helpers.curwin, helpers.eq
local curbufmeths, ok = helpers.curbufmeths, helpers.ok
local funcs, request = helpers.funcs, helpers.request
local funcs = helpers.funcs
local request = helpers.request
local neq = helpers.neq
local NIL = helpers.NIL
describe('api/buf', function()
@ -249,6 +251,17 @@ describe('api/buf', function()
eq(1, funcs.exists('b:lua'))
curbufmeths.del_var('lua')
eq(0, funcs.exists('b:lua'))
curbuf('set_var', 'changedtick', true)
eq(true, curbuf('get_var', 'changedtick'))
neq(true, nvim('eval', 'b:changedtick'))
end)
end)
describe('get_changedtick', function()
it('works', function()
eq(2, curbufmeths.get_changedtick())
curbufmeths.set_lines(0, 1, false, {'abc\0', '\0def', 'ghi'})
eq(3, curbufmeths.get_changedtick())
end)
it('buffer_set_var returns the old value', function()