{ plugins = { cmp-nvim-lsp = {enable = true;}; # lsp cmp-buffer = {enable = true;}; copilot-cmp = {enable = true;}; # copilot suggestions cmp-path = {enable = true;}; # file system paths cmp_luasnip = {enable = true;}; # snippets cmp-cmdline = {enable = false;}; # autocomplete for cmdline cmp = { enable = true; autoEnableSources = false; settings = { experimental = { ghost_text = true; }; }; settings = { mapping = { __raw = '' cmp.mapping.preset.insert({ [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.confirm({ select = true }), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), }) ''; }; snippet = { expand = "function(args) require('luasnip').lsp_expand(args.body) end"; }; sources = { __raw = '' cmp.config.sources({ {name = 'nvim_lsp'}, {name = 'copilot'}, {name = 'path'}, {name = 'luasnip'}, {name = 'cmdline'}, }, { {name = 'buffer'}, }) ''; }; performance = { debounce = 60; fetching_timeout = 200; max_view_entries = 30; }; window = { completion = { border = "rounded"; winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None"; }; documentation = { border = "rounded"; }; }; formatting = { fields = ["kind" "abbr" "menu"]; expandable_indicator = true; }; }; }; }; extraConfigLua = '' luasnip = require("luasnip") kind_icons = { Text = "󰊄", Method = "", Function = "󰡱", Constructor = "", Field = "", Variable = "󱀍", Class = "", Interface = "", Module = "󰕳", Property = "", Unit = "", Value = "", Enum = "", Keyword = "", Snippet = "", Color = "", File = "", Reference = "", Folder = "", EnumMember = "", Constant = "", Struct = "", Event = "", Operator = "", TypeParameter = "", } local cmp = require'cmp' -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline({'/', "?" }, { sources = { { name = 'buffer' } } }) -- Set configuration for specific filetype. cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. }, { { name = 'buffer' }, }) }) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(':', { sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }), }) ''; }