Skip to content

Commit 3f26913

Browse files
committed
fix: don't move cursor to nil node
1 parent 6876fc4 commit 3f26913

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

lua/treewalker/swap.lua

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,20 +179,27 @@ function M.swap_left()
179179
)
180180
end
181181

182+
function bla(f, a, b, c, d, e, g)
183+
end
184+
182185
---@param node TSNode
183186
---@param fn function
184187
function M.reorder(node, fn)
185-
if not node then return nil end
188+
if not node then return end
189+
if not fn then return end
190+
186191
---@param iter TSNode
187-
local iter = node
188-
while fn(iter) do
192+
local iter = fn(node)
193+
while iter do
189194
operations.swap_nodes(fn(iter), iter)
190195
iter = fn(iter)
191196
end
192-
-- place cursor on iter
197+
198+
-- We don't know which way we're swapping
199+
local lastnode = nodes.prev_sib(iter) or nodes.next_sib(iter)
193200
vim.fn.cursor(
194-
nodes.get_srow(iter),
195-
nodes.get_scol(iter)
201+
nodes.get_srow(lastnode),
202+
nodes.get_scol(lastnode)
196203
)
197204
end
198205

0 commit comments

Comments
 (0)