feat: add TypVal wrapper and update headers
This commit is contained in:
parent
0f07217feb
commit
0a55798f24
3 changed files with 3260 additions and 2261 deletions
13
nvim_all.h
13
nvim_all.h
|
@ -36,6 +36,18 @@
|
|||
#include "_nvim/src/nvim/drawline.h"
|
||||
#include "_nvim/src/nvim/drawscreen.h"
|
||||
#include "_nvim/src/nvim/edit.h"
|
||||
#include "_nvim/src/nvim/eval/buffer.h"
|
||||
#include "_nvim/src/nvim/eval/decode.h"
|
||||
#include "_nvim/src/nvim/eval/encode.h"
|
||||
#include "_nvim/src/nvim/eval/executor.h"
|
||||
#include "_nvim/src/nvim/eval/funcs.h"
|
||||
#include "_nvim/src/nvim/eval/gc.h"
|
||||
#include "_nvim/src/nvim/eval/typval.h"
|
||||
#include "_nvim/src/nvim/eval/typval_defs.h"
|
||||
#include "_nvim/src/nvim/eval/typval_encode.h"
|
||||
#include "_nvim/src/nvim/eval/userfunc.h"
|
||||
#include "_nvim/src/nvim/eval/vars.h"
|
||||
#include "_nvim/src/nvim/eval/window.h"
|
||||
#include "_nvim/src/nvim/event/defs.h"
|
||||
#include "_nvim/src/nvim/event/libuv_process.h"
|
||||
#include "_nvim/src/nvim/event/loop.h"
|
||||
|
@ -92,7 +104,6 @@
|
|||
#include "_nvim/src/nvim/macros.h"
|
||||
#include "_nvim/src/nvim/main.h"
|
||||
#include "_nvim/src/nvim/map.h"
|
||||
#include "_nvim/src/nvim/map_defs.h"
|
||||
#include "_nvim/src/nvim/mapping.h"
|
||||
#include "_nvim/src/nvim/mark.h"
|
||||
#include "_nvim/src/nvim/mark_defs.h"
|
||||
|
|
5466
nvim_c.zig
5466
nvim_c.zig
File diff suppressed because it is too large
Load diff
42
src/main.zig
42
src/main.zig
|
@ -31,6 +31,48 @@ pub const Error = struct {
|
|||
}
|
||||
};
|
||||
|
||||
/// Wrapper around nvim's typval_T
|
||||
pub const TypVal = union(enum) {
|
||||
number: c.varnumber_T,
|
||||
bool: bool,
|
||||
special: c_uint,
|
||||
float: f64,
|
||||
string: [*:0]u8,
|
||||
|
||||
// TODO: implement some more advanced types
|
||||
|
||||
/// Convert to the neovim type
|
||||
pub fn toNvim(self: TypVal) c.typval_T {
|
||||
return switch (self) {
|
||||
.number => |v| .{
|
||||
.v_type = c.VAR_NUMBER,
|
||||
.v_lock = c.VAR_UNLOCKED,
|
||||
.vval = .{ .v_number = v },
|
||||
},
|
||||
.bool => |v| .{
|
||||
.v_type = c.VAR_BOOL,
|
||||
.v_lock = c.VAR_UNLOCKED,
|
||||
.vval = .{ .v_bool = @boolToInt(v) },
|
||||
},
|
||||
.special => |v| .{
|
||||
.v_type = c.VAR_SPECIAL,
|
||||
.v_lock = c.VAR_UNLOCKED,
|
||||
.vval = .{ .v_special = v },
|
||||
},
|
||||
.float => |v| .{
|
||||
.v_type = c.VAR_FLOAT,
|
||||
.v_lock = c.VAR_UNLOCKED,
|
||||
.vval = .{ .v_float = v },
|
||||
},
|
||||
.string => |v| .{
|
||||
.v_type = c.VAR_STRING,
|
||||
.v_lock = c.VAR_UNLOCKED,
|
||||
.vval = .{ .v_string = v },
|
||||
},
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
pub fn nvimString(data: []u8) c.String {
|
||||
return .{
|
||||
.data = data.ptr,
|
||||
|
|
Loading…
Reference in a new issue