From 3e232a2bc7f5c8ea33804be1ea071a91c5f98055 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Fri, 24 Apr 2026 01:48:30 +0530 Subject: replacing tools with programs to be more consistent with config options --- modules/programs/nixvim/plugins/cmp.nix | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/programs/nixvim/plugins/cmp.nix (limited to 'modules/programs/nixvim/plugins/cmp.nix') diff --git a/modules/programs/nixvim/plugins/cmp.nix b/modules/programs/nixvim/plugins/cmp.nix new file mode 100644 index 0000000..683e0d3 --- /dev/null +++ b/modules/programs/nixvim/plugins/cmp.nix @@ -0,0 +1,37 @@ +{ config, lib, ... }: + +# Cmp - Completion plugin (nvim-cmp) for auto-completion +{ + config.programs.nixvim.plugins.cmp = lib.mkIf config.programs.nixvim.enable { + enable = true; + autoEnableSources = true; + settings = { + snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end"; + mapping = { + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.confirm({ select = true })"; + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.scroll_docs(-4)"; # scroll docs up + "" = "cmp.mapping.scroll_docs(4)"; # scroll docs down + + "" = '' + cmp.mapping(function(fallback) + if cmp.visible() then + cmp.abort() + else + fallback() + end + end, { "i" }) + ''; + }; + sources = [ + { name = "nvim_lsp"; } + { name = "path"; } + { name = "buffer"; } + ]; + }; + }; +} -- cgit v1.2.3