diff --git a/lua/nvim-treesitter/indent.lua b/lua/nvim-treesitter/indent.lua index 13fe1f8f1..87da0a8a8 100644 --- a/lua/nvim-treesitter/indent.lua +++ b/lua/nvim-treesitter/indent.lua @@ -177,7 +177,10 @@ function M.get_indent(lnum) node = get_last_node_at_line(root, prevlnum, col) end end - if q["indent.end"][node:id()] then + -- Recursively search upwards for any @indent.end nodes + local tmp = node + while tmp and not q["indent.end"][tmp:id()] do tmp = tmp:parent() end + if tmp then node = get_first_node_at_line(root, lnum) end else diff --git a/queries/clojure/indents.scm b/queries/clojure/indents.scm index d286292a4..9442ab95e 100644 --- a/queries/clojure/indents.scm +++ b/queries/clojure/indents.scm @@ -21,3 +21,6 @@ (anon_fn_lit . (sym_lit))] @indent.align (#set! indent.increment 2)) + +; Indent form on line following #_ +((dis_expr) @indent.begin @indent.end)