aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/lua/nvim/treesitter.lua4
-rw-r--r--src/nvim/lua/treesitter.c5
-rw-r--r--test/functional/treesitter/language_spec.lua2
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