summaryrefslogtreecommitdiffstats
path: root/nixos/modules/nixvim/plugins/cmp.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/nixvim/plugins/cmp.nix')
-rw-r--r--nixos/modules/nixvim/plugins/cmp.nix32
1 files changed, 32 insertions, 0 deletions
diff --git a/nixos/modules/nixvim/plugins/cmp.nix b/nixos/modules/nixvim/plugins/cmp.nix
new file mode 100644
index 0000000..66afc03
--- /dev/null
+++ b/nixos/modules/nixvim/plugins/cmp.nix
@@ -0,0 +1,32 @@
+{
+ programs.nixvim.plugins.cmp = {
+ enable = true;
+
+ settings = {
+ snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
+
+ mapping = {
+ "<C-d>" = "cmp.mapping.scroll_docs(-4)";
+ "<C-f>" = "cmp.mapping.scroll_docs(4)";
+ "<C-Space>" = "cmp.mapping.complete()";
+ "<C-e>" = "cmp.mapping.close()";
+ "<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
+ "<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
+ "<CR>" = "cmp.mapping.confirm({ select = true })";
+ };
+
+ sources = [
+ {name = "path";}
+ {name = "nvim_lsp";}
+ {name = "cmp_tabby";}
+ {name = "luasnip";}
+ {
+ name = "buffer";
+ # Words from other open buffers can also be suggested.
+ option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
+ }
+ {name = "neorg";}
+ ];
+ };
+ };
+}