{ ... }: { plugins = { cmp-nvim-lsp.enable = true; cmp = { enable = true; autoEnableSources = true; settings = { sources = [ { name = "nvim_lsp"; } { name = "path"; } { name = "buffer"; } { name = "luasnip"; } # { name = "cmdline"; } ]; completion = { completeopt = "menu,menuone,noinsert"; }; mapping = { "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; "" = "cmp.mapping.confirm({ select = true })"; "" = "cmp.mapping.complete()"; "" = "cmp.mapping.abort()"; "" = "cmp.mapping.scroll_docs(-4)"; "" = "cmp.mapping.scroll_docs(4)"; }; snippet.expand = '' function(args) require("luasnip").lsp_expand(args.body) end ''; }; }; }; }