_: { programs.nixvim = { plugins.cmp = { enable = true; settings = { completion = { completeopt = "menu,menuone,noinsert"; }; mapping = { "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; "" = "cmp.mapping.scroll_docs(-4)"; "" = "cmp.mapping.scroll_docs(4)"; "" = "cmp.mapping.confirm { select = true }"; "" = "cmp.mapping.complete {}"; "" = '' cmp.mapping(function() if luasnip.expand_or_locally_jumpable() then luasnip.expand_or_jump() end end, { 'i', 's' }) ''; "" = '' cmp.mapping(function() if luasnip.locally_jumpable(-1) then luasnip.jump(-1) end end, { 'i', 's' }) ''; }; snippet = { expand = '' function(args) require('luasnip').lsp_expand(args.body) end ''; }; sources = [ { name = "luasnip"; } { name = "nvim_lsp"; } { name = "path"; } ]; }; }; }; }