aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-treesitter/query.lua19
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