aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkiyan42 <yazdani.kiyan@protonmail.com>2020-06-29 16:51:38 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-06-30 08:38:31 +0200
commit2bb6374c344e76ca6cafc38696dd67e641a02876 (patch)
treeef6c077c40f49842b20078aa0249fee620d50bea
parentif/else in defining languages (diff)
downloadnvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar.gz
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar.bz2
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar.lz
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar.xz
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.tar.zst
nvim-treesitter-2bb6374c344e76ca6cafc38696dd67e641a02876.zip
Define multiple query for a language
Allows using another query file for a language, or use a query file from another language
-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