diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-10-08 21:31:09 +0200 |
---|---|---|
committer | Thomas Vigouroux <tomvig38@gmail.com> | 2020-10-08 21:31:09 +0200 |
commit | 6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9 (patch) | |
tree | 6fb3dbafd8935b8fcfb8f8fca2ba77d0246f6daf /src | |
parent | ca6815115c79da62b845f479f0cdd765bdbfb700 (diff) | |
download | rneovim-6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9.tar.gz rneovim-6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9.tar.bz2 rneovim-6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9.zip |
treesitter: check language ABI version on load
This is will avoid some issues at runtime.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/lua/treesitter.c | 8 |
1 files changed, 8 insertions, 0 deletions
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); |