cmp.nix 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. {
  2. plugins.cmp.enable = true;
  3. plugins.cmp.autoEnableSources = true;
  4. plugins.cmp.settings.mapping = {
  5. "<C-n>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
  6. "<C-p>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
  7. "<C-b>" = "cmp.mapping.scroll_docs(-4)";
  8. "<C-f>" = "cmp.mapping.scroll_docs(4)";
  9. "<C-y>" = "cmp.mapping.confirm({ select = true })";
  10. "<C-Space>" = "cmp.mapping.complete()";
  11. "<C-e>" = "cmp.mapping.close()";
  12. "<C-l>" = ''
  13. cmp.mapping(function()
  14. if luasnip.expand_or_locally_jumpable() then
  15. luasnip.expand_or_jump()
  16. end
  17. end, { 'i', 's' })
  18. '';
  19. "<C-h>" = ''
  20. cmp.mapping(function()
  21. if luasnip.locally_jumpable(-1) then
  22. luasnip.jump(-1)
  23. end
  24. end, { 'i', 's' })
  25. '';
  26. };
  27. plugins.cmp.settings.sources = [
  28. { name = "nvim_lsp"; }
  29. { name = "luasnip"; }
  30. { name = "path"; }
  31. { name = "buffer"; }
  32. { name = "friendly-snippets"; }
  33. ];
  34. plugins.luasnip.enable = true;
  35. plugins.cmp_luasnip.enable = true;
  36. plugins.cmp-nvim-lsp.enable = true;
  37. plugins.cmp-nvim-lsp-document-symbol.enable = true;
  38. plugins.cmp-nvim-lsp-signature-help.enable = true;
  39. plugins.cmp-path.enable = true;
  40. plugins.friendly-snippets.enable = true;
  41. }