{ ... }: { programs.nixvim.plugins = { cmp = { enable = true; settings = { autoEnableSources = true; experimental = { ghost_text = false; }; performance = { debounce = 60; fetchingTimeout = 200; maxViewEntries = 30; }; snippet = { expand = "luasnip"; }; formatting = { fields = [ "kind" "abbr" "menu" ]; }; sources = [ { name = "git"; } { name = "nvim_lsp"; } { name = "emoji"; } { name = "buffer"; # text within current buffer option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; keywordLength = 3; } { name = "path"; # file system paths keywordLength = 3; } { name = "luasnip"; # snippets keywordLength = 3; } ]; window = { completion = { border = "solid"; }; documentation = { border = "solid"; }; }; }; }; cmp-nvim-lsp = { enable = true; }; # lsp cmp-buffer = { enable = true; }; cmp-path = { enable = true; }; # file system paths cmp_luasnip = { enable = true; }; # snippets cmp-cmdline = { enable = false; }; # autocomplete for cmdline }; }