aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/treesitter/_meta.lua6
-rw-r--r--runtime/lua/vim/treesitter/health.lua3
-rw-r--r--runtime/lua/vim/treesitter/language.lua9
3 files changed, 16 insertions, 2 deletions
diff --git a/runtime/lua/vim/treesitter/_meta.lua b/runtime/lua/vim/treesitter/_meta.lua
index 2aedf5754e..39d1f1f5f8 100644
--- a/runtime/lua/vim/treesitter/_meta.lua
+++ b/runtime/lua/vim/treesitter/_meta.lua
@@ -72,7 +72,11 @@ vim._ts_get_language_version = function() end
--- @param path string
--- @param lang string
--- @param symbol_name? string
-vim._ts_add_language = function(path, lang, symbol_name) end
+vim._ts_add_language_from_object = function(path, lang, symbol_name) end
+
+--- @param path string
+--- @param lang string
+vim._ts_add_language_from_wasm = function(path, lang) end
---@return integer
vim._ts_get_minimum_language_version = function() end
diff --git a/runtime/lua/vim/treesitter/health.lua b/runtime/lua/vim/treesitter/health.lua
index ed3616ef46..637f9ea543 100644
--- a/runtime/lua/vim/treesitter/health.lua
+++ b/runtime/lua/vim/treesitter/health.lua
@@ -28,6 +28,9 @@ function M.check()
)
end
end
+
+ local can_wasm = vim._ts_add_language_from_wasm ~= nil
+ health.info(string.format('Can load WASM parsers: %s', tostring(can_wasm)))
end
return M
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua
index d0a74daa6c..e31ce6cb59 100644
--- a/runtime/lua/vim/treesitter/language.lua
+++ b/runtime/lua/vim/treesitter/language.lua
@@ -109,7 +109,14 @@ function M.add(lang, opts)
path = paths[1]
end
- vim._ts_add_language(path, lang, symbol_name)
+ if vim.endswith(path, '.wasm') then
+ if not vim._ts_add_language_from_wasm then
+ error(string.format("Unable to load wasm parser '%s': not built with ENABLE_WASMTIME ", path))
+ end
+ vim._ts_add_language_from_wasm(path, lang)
+ else
+ vim._ts_add_language_from_object(path, lang, symbol_name)
+ end
M.register(lang, filetype)
end