From ecded994c17344d0428bffe2a1774522164eb06f Mon Sep 17 00:00:00 2001 From: TheBlob42 Date: Sun, 3 Aug 2025 21:52:09 +0200 Subject: fix(snippet): early return for final tabstop #35115 The cursor movement autocommand can not detect when the final tabstop $0 is directly adjacent to another tabstop, which prevents ending the snippet session. The fix is an early return when jumping. --- runtime/lua/vim/snippet.lua | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/snippet.lua b/runtime/lua/vim/snippet.lua index 33c3e11e3d..f271265c18 100644 --- a/runtime/lua/vim/snippet.lua +++ b/runtime/lua/vim/snippet.lua @@ -585,6 +585,12 @@ function M.jump(direction) M._session.current_tabstop = dest select_tabstop(dest) + -- The cursor is not on a tabstop so exit the session. + if dest.index == 0 then + M.stop() + return + end + -- Activate expansion of the destination tabstop. M._session:set_group_gravity(dest.index, false) -- cgit