From 2e7e1ce219b43bb74f67875200dd4b68758ffd27 Mon Sep 17 00:00:00 2001 From: seth Date: Tue, 16 Jul 2024 19:04:27 -0400 Subject: back to nixvim again --- nixvim/plugins/cmp.nix | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 nixvim/plugins/cmp.nix (limited to 'nixvim/plugins/cmp.nix') diff --git a/nixvim/plugins/cmp.nix b/nixvim/plugins/cmp.nix new file mode 100644 index 0000000..6793435 --- /dev/null +++ b/nixvim/plugins/cmp.nix @@ -0,0 +1,47 @@ +{ helpers, ... }: +{ + plugins.cmp = { + enable = true; + + settings = { + completion.completeopt = "menu,menuone,insert"; + + snippet.expand = '' + function(args) + require('luasnip').lsp_expand(args.body) + end + ''; + + mapping = { + "" = "cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert })"; + "" = "cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert })"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.abort()"; + "" = helpers.mkRaw '' + cmp.mapping({ + i = function(fallback) + if cmp.visible() and cmp.get_active_entry() then + cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }) + else + fallback() + end + end, + + s = cmp.mapping.confirm({ select = true }), + c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), + }) + ''; + }; + + sources = map (name: { inherit name; }) [ + "nvim_lsp" + "luasnip" + "async_path" + "buffer" + "rg" + ]; + }; + }; +} -- cgit v1.2.3