diff options
| -rw-r--r-- | lua/nvim-treesitter/query.lua | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/query.lua b/lua/nvim-treesitter/query.lua index 6c76fc237..72cead9dd 100644 --- a/lua/nvim-treesitter/query.lua +++ b/lua/nvim-treesitter/query.lua @@ -29,6 +29,11 @@ M.base_language_map = { tsx = {'typescript', 'javascript'}, } +M.query_extensions = { + javascript = { 'jsx' }, + tsx = {'javascript.jsx'} +} + M.has_locals = get_query_guard('locals') M.has_highlights = get_query_guard('highlights') @@ -47,6 +52,20 @@ function M.get_query(lang, query_name) end end + local extensions = M.query_extensions[lang] + for _, ext in ipairs(extensions or {}) do + local l = lang + local e = ext + if e:match('%.') ~= nil then + l = e:match('.*%.'):sub(0, -2) + e = e:match('%..*'):sub(2, -1) + end + local ext_files = api.nvim_get_runtime_file(string.format('queries/%s/%s.scm', l, e), true) + if ext_files and #ext_files > 0 then + query_string = read_query_files(ext_files) .. "\n" .. query_string + end + end + if #query_string > 0 then return ts.parse_query(lang, query_string) end |
