summaryrefslogtreecommitdiff
path: root/modules/programs/neovim/default.nix
blob: 4c59c09b1c9eeabf6f70d7e616680ec19c2bbcab (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{ config, lib, pkgs, ... }:

{
  config = {

    environment.variables.EDITOR = "nvim";

    home-manager.users.${config.user} = {
      programs.neovim = {

        enable = true;

        viAlias = true;
        vimAlias = true;

        extraLuaConfig = let
          cfg = lib.fileContents ../../../files/config/nvim/init.lua;
          colorscheme = ''
            local colorscheme = require('base16-colorscheme')

            colorscheme.setup({
              base00 = '#${config.theme.colors.base00}',
              base01 = '#${config.theme.colors.base01}',
              base02 = '#${config.theme.colors.base02}',
              base03 = '#${config.theme.colors.base03}',
              base04 = '#${config.theme.colors.base04}',
              base05 = '#${config.theme.colors.base05}',
              base06 = '#${config.theme.colors.base06}',
              base07 = '#${config.theme.colors.base07}',
              base08 = '#${config.theme.colors.base08}',
              base09 = '#${config.theme.colors.base09}',
              base0A = '#${config.theme.colors.base0A}',
              base0B = '#${config.theme.colors.base0B}',
              base0C = '#${config.theme.colors.base0C}',
              base0D = '#${config.theme.colors.base0D}',
              base0E = '#${config.theme.colors.base0E}',
              base0F = '#${config.theme.colors.base0F}',
            })'';
          in
            colorscheme + cfg;

        plugins = with pkgs.vimPlugins; [
          # Deoendencies
          vim-devicons
          nvim-web-devicons
          # Lua functions
          plenary-nvim
          # Lines
          lualine-nvim # mode line
          bufferline-nvim # buffer line
          # Menus
          nvim-tree-lua # file browser
          undotree # undo menu
          trouble-nvim # error menu
          telescope-nvim # grep/find menus
          # Snippets
          vim-vsnip
          vim-vsnip-integ
          friendly-snippets
          # Completion
          nvim-cmp
          cmp-buffer
          cmp-nvim-lsp
          cmp-vsnip
          nvim-surround # delimiter
          # Lsp
          base16-nvim # colorscheme
          nerdcommenter # comment functions
          nvim-treesitter.withAllGrammars # hilighting
          vim-illuminate # hilighting
          todo-comments-nvim # todo comments
          nvim-lspconfig # lsp server
          fidget-nvim # notifications
          indent-o-matic # auto indentation
          hologram-nvim # images
          virt-column-nvim # 80 col line
        ];
      };
    };

  };
}