diff options
author | ZyX <kp-pav@yandex.ru> | 2016-07-30 01:39:09 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-02-23 19:46:44 +0300 |
commit | 0eab7ac4b98d9a29e9713251a0402b5fbc37355e (patch) | |
tree | 721ea9c6ecc0a6c12387095fb4cf7c1a3ac0fae2 | |
parent | 9752a333c32c344eb0cd86b4a3bba4ce6cba3b23 (diff) | |
download | rneovim-0eab7ac4b98d9a29e9713251a0402b5fbc37355e.tar.gz rneovim-0eab7ac4b98d9a29e9713251a0402b5fbc37355e.tar.bz2 rneovim-0eab7ac4b98d9a29e9713251a0402b5fbc37355e.zip |
api/buffer: Add nvim_buf_get_changedtick method
-rw-r--r-- | src/nvim/api/buffer.c | 27 | ||||
-rw-r--r-- | test/functional/api/buffer_spec.lua | 15 |
2 files changed, 37 insertions, 5 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 738a5ae091..f286306a20 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -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 diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua index 3d3a2bb046..5df8d57050 100644 --- a/test/functional/api/buffer_spec.lua +++ b/test/functional/api/buffer_spec.lua @@ -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() |