aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-06-04 14:54:44 +0200
committerGitHub <noreply@github.com>2019-06-04 14:54:44 +0200
commit3adb8a10b157bc5c20ab1bdcbaa6f6aa9e36a5fc (patch)
tree471fa95580c6597a6bc1f922f9c401744e49de73 /src/nvim/api/private
parentdb415bde5f1e366fea09ad572cf37a84894d61d4 (diff)
parentf5c56f03bb9ee25c3d931034497dc76a5591b770 (diff)
downloadrneovim-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.h2
-rw-r--r--src/nvim/api/private/helpers.c5
-rw-r--r--src/nvim/api/private/helpers.h4
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) \