diff options
author | Steven Sojka <steelsojka@gmail.com> | 2020-12-04 16:56:29 -0600 |
---|---|---|
committer | Steven Sojka <steelsojka@gmail.com> | 2020-12-04 16:56:29 -0600 |
commit | e15c5f58df52ee05d042c4696c72c3fbb4457eee (patch) | |
tree | a8d88a76ecec93a536850ff1b8a2772cb53e40ea /runtime/lua/vim/treesitter/language.lua | |
parent | 0c8d6ab536ec2e8e95c0de441e6ad1fdfccc909f (diff) | |
download | rneovim-e15c5f58df52ee05d042c4696c72c3fbb4457eee.tar.gz rneovim-e15c5f58df52ee05d042c4696c72c3fbb4457eee.tar.bz2 rneovim-e15c5f58df52ee05d042c4696c72c3fbb4457eee.zip |
fix(treesitter): don't throw an error for missing injected langs
Diffstat (limited to 'runtime/lua/vim/treesitter/language.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/language.lua | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua index a7e36a0b89..d60cd2d0c7 100644 --- a/runtime/lua/vim/treesitter/language.lua +++ b/runtime/lua/vim/treesitter/language.lua @@ -8,7 +8,8 @@ local M = {} -- -- @param lang The language the parser should parse -- @param path Optionnal path the parser is located at -function M.require_language(lang, path) +-- @param silent Don't throw an error if language not found +function M.require_language(lang, path, silent) if vim._ts_has_language(lang) then return true end @@ -16,12 +17,23 @@ function M.require_language(lang, path) local fname = 'parser/' .. lang .. '.*' local paths = a.nvim_get_runtime_file(fname, false) if #paths == 0 then + if silent then + return false + end + -- TODO(bfredl): help tag? error("no parser for '"..lang.."' language, see :help treesitter-parsers") end path = paths[1] end - vim._ts_add_language(path, lang) + + if silent then + return pcall(function() vim._ts_add_language(path, lang) end) + else + vim._ts_add_language(path, lang) + end + + return true end --- Inspects the provided language. |