From 6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Thu, 8 Oct 2020 21:31:09 +0200 Subject: treesitter: check language ABI version on load This is will avoid some issues at runtime. --- src/nvim/lua/treesitter.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/nvim/lua/treesitter.c') diff --git a/src/nvim/lua/treesitter.c b/src/nvim/lua/treesitter.c index 44e743e911..33d9772bec 100644 --- a/src/nvim/lua/treesitter.c +++ b/src/nvim/lua/treesitter.c @@ -174,6 +174,14 @@ int tslua_add_language(lua_State *L) return luaL_error(L, "Failed to load parser: internal error"); } + uint32_t lang_version = ts_language_version(lang); + if (lang_version < TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION) { + return luaL_error( + L, + "ABI version mismatch : expected %" PRIu32 ", found %" PRIu32, + TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION, lang_version); + } + pmap_put(cstr_t)(langs, xstrdup(lang_name), lang); lua_pushboolean(L, true); -- cgit