diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2021-04-01 17:07:46 +0200 |
---|---|---|
committer | Thomas Vigouroux <tomvig38@gmail.com> | 2021-04-06 19:02:58 +0200 |
commit | e8bc3d717eefedc60e49e5f9c8db42a9a662f68a (patch) | |
tree | 695d64b17bf49788a898955b171611b3402630e2 | |
parent | 86ced59a6a5f9da137f75b98b5fc03b777255f52 (diff) | |
download | rneovim-e8bc3d717eefedc60e49e5f9c8db42a9a662f68a.tar.gz rneovim-e8bc3d717eefedc60e49e5f9c8db42a9a662f68a.tar.bz2 rneovim-e8bc3d717eefedc60e49e5f9c8db42a9a662f68a.zip |
feat(ts): include parser ABI version in checkhealth
-rw-r--r-- | runtime/lua/nvim/treesitter.lua | 4 | ||||
-rw-r--r-- | src/nvim/lua/treesitter.c | 5 | ||||
-rw-r--r-- | test/functional/treesitter/language_spec.lua | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/runtime/lua/nvim/treesitter.lua b/runtime/lua/nvim/treesitter.lua index b3369b2e82..dd0b11a6c7 100644 --- a/runtime/lua/nvim/treesitter.lua +++ b/runtime/lua/nvim/treesitter.lua @@ -21,7 +21,9 @@ function M.check_health() if not is_loadable then report_error(string.format("Impossible to load parser for %s: %s", parsername, ret)) elseif ret then - report_ok(string.format("Loaded parser for %s", parsername)) + local lang = ts.language.inspect_language(parsername) + report_ok(string.format("Loaded parser for %s: ABI version %d", + parsername, lang._abi_version)) else report_error(string.format("Unable to load parser for %s", parsername)) end diff --git a/src/nvim/lua/treesitter.c b/src/nvim/lua/treesitter.c index 188b2c1ef7..4c65f5db4e 100644 --- a/src/nvim/lua/treesitter.c +++ b/src/nvim/lua/treesitter.c @@ -229,6 +229,11 @@ int tslua_inspect_lang(lua_State *L) } lua_setfield(L, -2, "fields"); // [retval] + + uint32_t lang_version = ts_language_version(lang); + lua_pushinteger(L, lang_version); // [retval, version] + lua_setfield(L, -2, "_abi_version"); + return 1; } diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua index a5801271cb..afb17dd2cf 100644 --- a/test/functional/treesitter/language_spec.lua +++ b/test/functional/treesitter/language_spec.lua @@ -45,7 +45,7 @@ describe('treesitter API', function() return {keys, lang.fields, symbols} ]])) - eq({fields=true, symbols=true}, keys) + eq({fields=true, symbols=true, _abi_version=true}, keys) local fset = {} for _,f in pairs(fields) do |