lua: Add ability to pass lua functions directly to vimL

This commit is contained in:
TJ DeVries
2020-06-19 00:23:30 -04:00
parent a695da7d3f
commit 971a191c4d
8 changed files with 264 additions and 19 deletions

View File

@@ -271,6 +271,11 @@ typedef struct {
/// Number of fixed variables used for arguments
#define FIXVAR_CNT 12
/// Callback interface for C function reference
typedef int (*cfunc_T)(int argcount, typval_T *argvars, typval_T *rettv, void *state); // NOLINT
/// Callback to clear cfunc_T
typedef void (*cfunc_free_T)(void *state);
// Structure to hold info for a function that is currently being executed.
typedef struct funccall_S funccall_T;
@@ -307,6 +312,10 @@ struct ufunc {
garray_T uf_lines; ///< function lines
int uf_profiling; ///< true when func is being profiled
int uf_prof_initialized;
// Managing cfuncs
cfunc_T uf_cb; ///< C function extension callback
cfunc_free_T uf_cb_free; ///< C function extesion free callback
void *uf_cb_state; ///< State of C function extension.
// Profiling the function as a whole.
int uf_tm_count; ///< nr of calls
proftime_T uf_tm_total; ///< time spent in function + children