aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/nixvim/plugins/cmp/default.nix
blob: 469880171da6719ff19bfca95d7c7d351b439cc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Completion plugin for auto-completion
{ config, lib, ... }:
{
  config.programs.nixvim.plugins.cmp = lib.mkIf config.development.nixvim.enable {
    enable = true;
    autoEnableSources = true;
    settings = {
      snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
      mapping = {
        "<C-Space>" = "cmp.mapping.complete()";
        "<CR>" = "cmp.mapping.confirm({ select = true })";
        "<Tab>" = "cmp.mapping.select_next_item()";
        "<S-Tab>" = "cmp.mapping.select_prev_item()";
        "<Down>" = "cmp.mapping.select_next_item()";
        "<Up>" = "cmp.mapping.select_prev_item()";
        "<C-u>" = "cmp.mapping.scroll_docs(-4)"; # scroll docs up
        "<C-d>" = "cmp.mapping.scroll_docs(4)"; # scroll docs down

        "<Escape>" = builtins.readFile ./escape.lua;
      };
      sources = [
        { name = "nvim_lsp"; }
        { name = "path"; }
        { name = "buffer"; }
      ];
    };
  };
}