aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Vigouroux <tomvig38@gmail.com>2020-10-09 11:22:22 +0200
committerGitHub <noreply@github.com>2020-10-09 11:22:22 +0200
commitce5a260c9ec5c85eb67eef268e3138b11da86224 (patch)
treeac4597cfcc9bc60500e659da340edd831e1d5c0a /src
parent15ad7c0d27d3a9aa7dd100ecb4ab32956164112b (diff)
parent6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9 (diff)
downloadrneovim-ce5a260c9ec5c85eb67eef268e3138b11da86224.tar.gz
rneovim-ce5a260c9ec5c85eb67eef268e3138b11da86224.tar.bz2
rneovim-ce5a260c9ec5c85eb67eef268e3138b11da86224.zip
Merge pull request #13075 from vigoux/ts-check-parser-version
treesitter: check language ABI version on load
Diffstat (limited to 'src')
-rw-r--r--src/nvim/lua/treesitter.c8
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);