diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-05-29 10:05:00 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-06-04 13:45:20 +0200 |
commit | f5c56f03bb9ee25c3d931034497dc76a5591b770 (patch) | |
tree | 1d6f3a67cef29ed775d51ae6c65e48c3ce8155c4 /src/nvim/api/private | |
parent | 4841c46e3384b09caaaded4936cde7be461d1b3c (diff) | |
download | rneovim-f5c56f03bb9ee25c3d931034497dc76a5591b770.tar.gz rneovim-f5c56f03bb9ee25c3d931034497dc76a5591b770.tar.bz2 rneovim-f5c56f03bb9ee25c3d931034497dc76a5591b770.zip |
api: allow nvim_buf_attach from lua using callbacks
Diffstat (limited to 'src/nvim/api/private')
-rw-r--r-- | src/nvim/api/private/defs.h | 2 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.c | 5 | ||||
-rw-r--r-- | src/nvim/api/private/helpers.h | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h index 978c55691b..f0d48bf145 100644 --- a/src/nvim/api/private/defs.h +++ b/src/nvim/api/private/defs.h @@ -104,6 +104,7 @@ typedef enum { kObjectTypeString, kObjectTypeArray, kObjectTypeDictionary, + kObjectTypeLuaRef, // EXT types, cannot be split or reordered, see #EXT_OBJECT_TYPE_SHIFT kObjectTypeBuffer, kObjectTypeWindow, @@ -119,6 +120,7 @@ struct object { String string; Array array; Dictionary dictionary; + LuaRef luaref; } data; }; diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 521ec11906..6b05d1ac0a 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -11,6 +11,7 @@ #include "nvim/api/private/defs.h" #include "nvim/api/private/handle.h" #include "nvim/msgpack_rpc/helpers.h" +#include "nvim/lua/executor.h" #include "nvim/ascii.h" #include "nvim/assert.h" #include "nvim/vim.h" @@ -1147,6 +1148,10 @@ void api_free_object(Object value) api_free_dictionary(value.data.dictionary); break; + case kObjectTypeLuaRef: + executor_free_luaref(value.data.luaref); + break; + default: abort(); } diff --git a/src/nvim/api/private/helpers.h b/src/nvim/api/private/helpers.h index cc74824402..0ea7667428 100644 --- a/src/nvim/api/private/helpers.h +++ b/src/nvim/api/private/helpers.h @@ -48,6 +48,10 @@ .type = kObjectTypeDictionary, \ .data.dictionary = d }) +#define LUAREF_OBJ(r) ((Object) { \ + .type = kObjectTypeLuaRef, \ + .data.luaref = r }) + #define NIL ((Object) {.type = kObjectTypeNil}) #define PUT(dict, k, v) \ |