diff options
| author | Björn Linse <bjorn.linse@gmail.com> | 2019-06-04 14:54:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-04 14:54:44 +0200 |
| commit | 3adb8a10b157bc5c20ab1bdcbaa6f6aa9e36a5fc (patch) | |
| tree | 471fa95580c6597a6bc1f922f9c401744e49de73 /src/nvim/api/private | |
| parent | db415bde5f1e366fea09ad572cf37a84894d61d4 (diff) | |
| parent | f5c56f03bb9ee25c3d931034497dc76a5591b770 (diff) | |
| download | rneovim-3adb8a10b157bc5c20ab1bdcbaa6f6aa9e36a5fc.tar.gz rneovim-3adb8a10b157bc5c20ab1bdcbaa6f6aa9e36a5fc.tar.bz2 rneovim-3adb8a10b157bc5c20ab1bdcbaa6f6aa9e36a5fc.zip | |
Merge pull request #9170 from bfredl/lua_cb
lua callbacks for nvim_buf_attach
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) \ |