aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/eval.h')
-rw-r--r--src/nvim/eval.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/eval.h b/src/nvim/eval.h
index a9ec5d47a6..f74f23d084 100644
--- a/src/nvim/eval.h
+++ b/src/nvim/eval.h
@@ -272,6 +272,22 @@ typedef int (*ex_unletlock_callback)(lval_T *, char_u *, exarg_T *, int);
// Used for checking if local variables or arguments used in a lambda.
extern bool *eval_lavars_used;
+/// Function argument that can be a string, funcref or partial.
+/// - declare: evalarg_T name;
+/// - init: name = EVALARG_INIT;
+/// - set: evalarg_get(&argvars[3], &name);
+/// - use: if (evalarg_valid(&name)) res = evalarg_call(&name);
+/// - cleanup: evalarg_clean(&name);
+typedef struct {
+ const char *eva_string;
+ Callback eva_callback;
+} evalarg_T;
+
+#define EVALARG_INIT (evalarg_T) { \
+ .eva_string = NULL, \
+ .eva_callback = CALLBACK_NONE, \
+}
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "eval.h.generated.h"
#endif