mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 19:36:40 +00:00
feat(lua): add api and lua autocmds
This commit is contained in:
@@ -28,11 +28,11 @@
|
||||
#include "nvim/mbyte.h"
|
||||
#include "nvim/memory.h"
|
||||
#include "nvim/message.h"
|
||||
#include "nvim/os/fileio.h"
|
||||
#include "nvim/os/input.h"
|
||||
#include "nvim/pos.h"
|
||||
#include "nvim/types.h"
|
||||
#include "nvim/vim.h"
|
||||
#include "nvim/os/fileio.h"
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "eval/typval.c.generated.h"
|
||||
@@ -1123,6 +1123,8 @@ bool tv_callback_equal(const Callback *cb1, const Callback *cb2)
|
||||
// FIXME: this is inconsistent with tv_equal but is needed for precision
|
||||
// maybe change dictwatcheradd to return a watcher id instead?
|
||||
return cb1->data.partial == cb2->data.partial;
|
||||
case kCallbackLua:
|
||||
return cb1->data.luaref == cb2->data.luaref;
|
||||
case kCallbackNone:
|
||||
return true;
|
||||
}
|
||||
@@ -1142,6 +1144,9 @@ void callback_free(Callback *callback)
|
||||
case kCallbackPartial:
|
||||
partial_unref(callback->data.partial);
|
||||
break;
|
||||
case kCallbackLua:
|
||||
NLUA_CLEAR_REF(callback->data.luaref);
|
||||
break;
|
||||
case kCallbackNone:
|
||||
break;
|
||||
}
|
||||
@@ -1149,6 +1154,12 @@ void callback_free(Callback *callback)
|
||||
callback->data.funcref = NULL;
|
||||
}
|
||||
|
||||
/// Check if callback is freed
|
||||
bool callback_is_freed(Callback callback)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Copy a callback into a typval_T.
|
||||
void callback_put(Callback *cb, typval_T *tv)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
@@ -1164,6 +1175,9 @@ void callback_put(Callback *cb, typval_T *tv)
|
||||
tv->vval.v_string = vim_strsave(cb->data.funcref);
|
||||
func_ref(cb->data.funcref);
|
||||
break;
|
||||
case kCallbackLua:
|
||||
// TODO(tjdevries): I'm not even sure if this is strictly necessary?
|
||||
abort();
|
||||
default:
|
||||
tv->v_type = VAR_SPECIAL;
|
||||
tv->vval.v_special = kSpecialVarNull;
|
||||
@@ -1185,6 +1199,9 @@ void callback_copy(Callback *dest, Callback *src)
|
||||
dest->data.funcref = vim_strsave(src->data.funcref);
|
||||
func_ref(src->data.funcref);
|
||||
break;
|
||||
case kCallbackLua:
|
||||
dest->data.luaref = api_new_luaref(src->data.luaref);
|
||||
break;
|
||||
default:
|
||||
dest->data.funcref = NULL;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user