diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-07-14 21:50:57 +0200 |
---|---|---|
committer | Thomas Vigouroux <tomvig38@gmail.com> | 2020-08-13 20:30:15 +0200 |
commit | 613068071e02ddf5958fa82974373c370112c5e6 (patch) | |
tree | 53973598ca44dbde2bc4a9d947c9a6499d1295c6 /runtime/lua/vim/treesitter/language.lua | |
parent | 7f49594813287d8134c52b3a9ee8ff099d525468 (diff) | |
download | rneovim-613068071e02ddf5958fa82974373c370112c5e6.tar.gz rneovim-613068071e02ddf5958fa82974373c370112c5e6.tar.bz2 rneovim-613068071e02ddf5958fa82974373c370112c5e6.zip |
treesitter: refactor and use lua regexes
Diffstat (limited to 'runtime/lua/vim/treesitter/language.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/language.lua | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua new file mode 100644 index 0000000000..b4817de91e --- /dev/null +++ b/runtime/lua/vim/treesitter/language.lua @@ -0,0 +1,26 @@ +local a = vim.api + +local M = {} + +function M.require_language(lang, path) + if vim._ts_has_language(lang) then + return true + end + if path == nil then + local fname = 'parser/' .. lang .. '.*' + local paths = a.nvim_get_runtime_file(fname, false) + if #paths == 0 then + -- TODO(bfredl): help tag? + error("no parser for '"..lang.."' language") + end + path = paths[1] + end + vim._ts_add_language(path, lang) +end + +function M.inspect_language(lang) + M.require_language(lang) + return vim._ts_inspect_language(lang) +end + +return M |