From 0860db73ae6fd9a6f6347219d820bf026a6b8b91 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sun, 27 Sep 2026 17:38:39 +0200 Subject: * MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated-commit-by: dots Signed-off-by: Robert Günzler --- .config/nvim/lua/config/snippets.lua | 84 +++++++++++++----------------------- 1 file changed, 29 insertions(+), 55 deletions(-) (limited to '.config/nvim/lua/config/snippets.lua') diff --git a/.config/nvim/lua/config/snippets.lua b/.config/nvim/lua/config/snippets.lua index e0c260e..9cd0632 100644 --- a/.config/nvim/lua/config/snippets.lua +++ b/.config/nvim/lua/config/snippets.lua @@ -6,16 +6,24 @@ ls.config.set_config({ enable_autosnippets = true, history = true, updateevents = 'TextChanged,TextChangedI', - override_builtin = true, + exit_roots = false, -- dont exit when reaching last node ext_opts = { [types.choiceNode] = { - active = { - virt_text = { { '◂ 󰬊 ', 'NonText' } }, + passive = { + virt_text = { { '󰬊 ', 'Conceal' } }, + virt_text_pos = 'inline', }, }, [types.insertNode] = { - active = { - virt_text = { { '◂ 󰬐 ', 'NonText' } }, + passive = { + virt_text = { { '󰬐 ', 'Conceal' } }, + virt_text_pos = 'inline', + }, + }, + [types.exitNode] = { + passive = { + virt_text = { { '$', 'Conceal' } }, + virt_text_pos = 'inline', }, }, }, @@ -53,27 +61,6 @@ ls.config.set_config({ require('luasnip.loaders.from_lua').lazy_load() require('luasnip.loaders.from_vscode').lazy_load({ include = {} }) --- keymaps -vim.keymap.set({ 'i', 's' }, '', function() - return vim.snippet.active({ direction = 1 }) and vim.snippet.jump(1) -end, { silent = true, desc = 'snippet: jump next' }) - -vim.keymap.set({ 'i', 's' }, '', function() - return vim.snippet.active({ direction = -1 }) and vim.snippet.jump(-1) -end, { silent = true, desc = 'snippet: jump prev' }) - -vim.keymap.set({ 'i', 's' }, '', function() - if ls.choice_active() then - ls.change_choice(1) - end -end, { silent = true, desc = 'snippet: next choice' }) - -vim.keymap.set({ 'i', 's' }, '', function() - if ls.choice_active() then - ls.change_choice(-1) - end -end, { silent = true, desc = 'snippet: prev choice' }) - -- usercmds vim.api.nvim_create_user_command('EditSnippets', require('luasnip.loaders').edit_snippet_files, {}) @@ -105,36 +92,23 @@ vim.api.nvim_create_user_command('EditSnippets', require('luasnip.loaders').edit vim.api.nvim_create_autocmd('ModeChanged', { pattern = '*', callback = function() - if ((vim.v.event.old_mode == 's' and vim.v.event.new_mode == 'n') or vim.v.event.old_mode == 'i') - and ls.session.current_nodes[vim.api.nvim_get_current_buf()] - and not ls.session.jump_active - and not require("blink.cmp").is_visible() + if + ((vim.v.event.old_mode == 's' or vim.v.event.old_mode == 'i') and vim.v.event.new_mode == 'n') + and ls.session.current_nodes[vim.api.nvim_get_current_buf()] + and not ls.session.jump_active + and not require('blink.cmp').is_visible() then - ls.unlink_current() + vim.schedule(ls.unlink_current) end - end + end, }) --- attach to builtin snippet hooks -vim.snippet.expand = ls.lsp_expand -vim.snippet.active = function(filter) - filter = filter or {} - filter.direction = filter.direction or 1 - if filter.direction == 1 then - return ls.expand_or_jumpable() - else - return ls.jumpable(filter.direction) - end -end -vim.snippet.jump = function(direction) - if direction == 1 then - if ls.expandable() then - return ls.expand_or_jump() - else - return ls.jumpable(1) and ls.jump(1) - end - else - return ls.jumpable(-1) and ls.jump(-1) - end -end -vim.snippet.stop = ls.unlink_current +-- expand/jump keymaps handled by blink + +vim.keymap.set({ 'i', 's' }, '', function() + return ls.choice_active() and ls.change_choice(1) +end, { silent = true, desc = 'luasnip: next choice' }) + +vim.keymap.set({ 'i', 's' }, '', function() + return ls.choice_active() and ls.change_choice(-1) +end, { silent = true, desc = 'luasnip: prev choice' }) -- cgit 1.4.1