{ pkgs, ... }: with pkgs.vimPlugins; [ { plugin = luasnip; config = '' lua << EOF local luasnip = require 'luasnip' -- Expand or jump in a snippet vim.api.nvim_set_keymap('i', '', 'lua return luasnip.expand_or_jumpable() and \'luasnip-expand-or-jump\' or \'\'', { expr = true, silent = true }) -- Jump backwards in a snippet vim.api.nvim_set_keymap('i', '', 'lua luasnip.jump(-1)', {silent = true}) -- Keymaps for Select mode vim.api.nvim_set_keymap('s', '', 'lua require(\'luasnip\').jump(1)', {silent = true}) vim.api.nvim_set_keymap('s', '', 'lua require(\'luasnip\').jump(-1)', {silent = true}) -- Changing choices in choiceNodes vim.api.nvim_set_keymap('i', '', 'lua return luasnip.choice_active() and \'luasnip-next-choice\' or \'\'', { expr = true, silent = true }) vim.api.nvim_set_keymap('s', '', 'lua return luasnip.choice_active() and \'luasnip-next-choice\' or \'\'', { expr = true, silent = true }) EOF ''; } ]