aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-treesitter/indent.lua9
-rw-r--r--tests/indent/python_spec.lua4
2 files changed, 6 insertions, 7 deletions
diff --git a/lua/nvim-treesitter/indent.lua b/lua/nvim-treesitter/indent.lua
index af08bcd6f..ebf7695de 100644
--- a/lua/nvim-treesitter/indent.lua
+++ b/lua/nvim-treesitter/indent.lua
@@ -54,7 +54,8 @@ function M.get_indent(lnum)
return -1
end
- local root, _, lang_tree = tsutils.get_root_for_position(lnum, 0, parser)
+ -- get_root_for_position is 0-based.
+ local root, _, lang_tree = tsutils.get_root_for_position(lnum - 1, 0, parser)
-- Not likely, but just in case...
if not root then
@@ -114,8 +115,10 @@ function M.get_indent(lnum)
local prev_row = node:start()
while node do
- -- do not indent if we are inside an @ignore block
- if q.ignores[node_fmt(node)] and node:start() < lnum - 1 and node:end_() > lnum - 1 then
+ -- Do not indent if we are inside an @ignore block.
+ -- If a node spans from L1,C1 to L2,C2, we know that lines where L1 < line <= L2 would
+ -- have their indentations contained by the node.
+ if q.ignores[node_fmt(node)] and node:start() < lnum - 1 and lnum - 1 <= node:end_() then
return -1
end
diff --git a/tests/indent/python_spec.lua b/tests/indent/python_spec.lua
index 45e262b73..f1769c4d8 100644
--- a/tests/indent/python_spec.lua
+++ b/tests/indent/python_spec.lua
@@ -13,14 +13,10 @@ describe("indent Python:", function()
run:whole_file(".", {
expected_failures = {
"./aligned_indent.py",
- "./basic_blocks.py",
"./branches.py",
- "./control_flow.py",
"./hanging_indent.py",
"./join_lines.py",
"./nested_collections.py",
- "./strings.py",
- "./control_flow.py",
},
})
end)