diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-10-09 11:22:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-09 11:22:22 +0200 |
commit | ce5a260c9ec5c85eb67eef268e3138b11da86224 (patch) | |
tree | ac4597cfcc9bc60500e659da340edd831e1d5c0a /src | |
parent | 15ad7c0d27d3a9aa7dd100ecb4ab32956164112b (diff) | |
parent | 6f6c55717a8c15bdcfec01b8cdcb53b0b499d5d9 (diff) | |
download | rneovim-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.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); |