aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhạm Huy Hoàng <hoangtun0810@gmail.com>2024-02-18 20:56:53 +0900
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit039fe9095d07910e71ec41ef38e0bffa378293e1 (patch)
tree098619f254a20a35b58e43d6ab9b976d1e50d3fb
parentfix: update add_predicate and add_directive calls for upstream (#6106) (diff)
downloadnvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar.gz
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar.bz2
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar.lz
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar.xz
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.tar.zst
nvim-treesitter-039fe9095d07910e71ec41ef38e0bffa378293e1.zip
fix(format): update scripts to support nightly (#6126)
No need for assert as the use is contained within the script only
-rwxr-xr-xscripts/format-queries.lua39
1 files changed, 27 insertions, 12 deletions
diff --git a/scripts/format-queries.lua b/scripts/format-queries.lua
index 8639daf2b..f924b8064 100755
--- a/scripts/format-queries.lua
+++ b/scripts/format-queries.lua
@@ -14,25 +14,40 @@ else
end
ts.query.add_predicate('kind-eq?', function(match, _, _, pred)
- local cap = match[pred[2]]
- local node = type(cap) == 'table' and cap[1] or cap
- if not node then
+ local nodes = match[pred[2]]
+ local types = { unpack(pred, 3) }
+
+ if not nodes or #nodes == 0 then
return true
end
- local types = { unpack(pred, 3) }
- return vim.tbl_contains(types, node:type())
-end, true)
+ for _, node in pairs(nodes) do
+ if not vim.tbl_contains(types, node:type()) then
+ return false
+ end
+ end
+ return true
+end, {
+ force = true,
+ all = true,
+})
ts.query.add_predicate('is-start-of-line?', function(match, _, _, pred)
- local cap = match[pred[2]]
- local node = type(cap) == 'table' and cap[1] or cap
- if not node then
+ local nodes = match[pred[2]]
+ if not nodes or #nodes == 0 then
return true
end
- local start_row, start_col = node:start()
- return vim.fn.indent(start_row + 1) == start_col
-end)
+ for _, node in pairs(nodes) do
+ local start_row, start_col = node:start()
+ if vim.fn.indent(start_row + 1) ~= start_col then
+ return false
+ end
+ end
+ return true
+end, {
+ force = true,
+ all = true,
+})
--- Control the indent here. Change to \t if uses tab instead
local indent_str = ' '