summaryrefslogtreecommitdiff
path: root/profiles/core/neovim.nix
blob: 2fbdd8b42d97d27a2523d0390664a9bb1b5cf16f (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
{
  pkgs,
  config,
  ...
}: {
  hm = {
    xdg = {
      configFile = with config.lib.meta; {
        "nvim".source = mkMutableSymlink /mut/neovim;
      };
    };

    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
        playground
        gruvbox-material
        kanagawa-nvim
        lsp_lines-nvim
        gitsigns-nvim
        vim-helm
        lualine-nvim

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

        # Coding
        fzf-lua
        nvim-lspconfig
        null-ls-nvim
        lsp_signature-nvim
        nvim-dap
        nvim-dap-ui
        nvim-nio
        nvim-dap-python
        luasnip
        vim-test
        nvim-lint
        vim-surround
        conform-nvim
        trouble-nvim
        vim-easy-align
        nvim-comment

        blink-cmp

        # trying out lisp
        conjure
        vim-racket
        nvim-parinfer

        # ai :(
        # render-markdown-nvim
        # avante-nvim
        # nui-nvim
      ];
    };
  };
}