local luasnip = require("luasnip") local cmp = require("cmp") local M = {} function M.selectNext(opts) return cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item(opts or {}) elseif luasnip.locally_jumpable(1) then luasnip.jump(1) else fallback() end end, { "i", "s" }) end function M.selectPrev(opts) return cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item(opts or {}) elseif luasnip.locally_jumpable(-1) then luasnip.jump(-1) else fallback() end end, { "i", "s" }) end function M.confirm(opts) return cmp.mapping(function(fallback) if cmp.visible() then -- if luasnip.expand_or_jumpable() then -- luasnip.expand_or_jump() -- else cmp.confirm(opts or {}) -- end else fallback() end end) end return M