local mysnip = {}
local map = vim.keymap.set
M = {}
mysnip[sn.abbr] = sn.snip
end
map('i', '<Tab>', function()
local curpos = vim.api.nvim_win_get_cursor(0);
if curpos[2] == 0 then return '<Tab>' end
local newpos = { curpos[1], curpos[2] - 1 }
vim.api.nvim_win_set_cursor(0, newpos)
local cword = vim.fn.expand('<cword>')
local snip = mysnip[cword]
if snip then
return '<Esc>ciw<cmd>lua vim.snippet.expand"' .. snip:gsub('\n', '\\n') .. '"<CR>'
end
vim.api.nvim_win_set_cursor(0, curpos)
if vim.snippet.active({ direction = 1 }) then
return '<cmd>lua vim.snippet.jump(1)'
else
return '<Tab>'
end
end, { expr = true })
map({ 'i', 's' }, '<S-Tab>', function()
if vim.snippet.active({ direction = -1 }) then
vim.snippet.jump(-1)
else
return '<S-Tab>'
end
end, { expr = true })
end
return M