summaryrefslogtreecommitdiff
path: root/profiles/core/neovim.nix
blob: 8ec65a0c0ac8ff24dc944ec75b6d2322f90c68bd (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
{
  pkgs,
  config,
  ...
}: {
  hm = {
    editorconfig = {
      enable = true;
      settings = {
        "*" = {
          trim_trailing_whitespace = true;
          insert_final_newline = true;
        };
        "*.{yaml,nix,sh}" = {
          indent_style = "space";
          indent_size = 2;
        };
      };
    };

    programs.neovim = {
      enable = true;
      package = pkgs.neovim-unwrapped;
      viAlias = true;
      vimAlias = true;
      extraPackages = with pkgs; [
        # bashInteractive
        # pyright
        # gopls
        # fennel
        # fnlfmt
        # alejandra
        # statix
        # fzf
        # nil
        # shellcheck
        # vale
      ];
      plugins = with pkgs.vimPlugins; [
        # highlighting
        nvim-treesitter.withAllGrammars
        gruvbox-material
        kanagawa-nvim
        lsp_lines-nvim
        gitsigns-nvim
        vim-helm

        # external
        oil-nvim
        vim-fugitive
        gv-vim
        zoxide-vim
        obsidian-nvim
        go-nvim

        # Debug adapter
        nvim-dap
        nvim-dap-ui
        nvim-nio
        nvim-dap-python

        # editing
        fzf-lua
        nvim-lspconfig
        lsp_signature-nvim
        luasnip
        nvim-lint
        vim-surround
        conform-nvim
        trouble-nvim
        vim-easy-align
        nvim-comment
      ];
    };
  };
}