summaryrefslogtreecommitdiff
path: root/profiles/core/neovim.nix
blob: e1da7cc263180e87038a56e397e9186e9b82967b (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,
  ...
}: {
  hm = {
    # https://github.com/nix-community/home-manager/issues/4692
    # xdg = {
    #   configFile = with config.lib.meta; {
    #     "nvim".source = mkMutableSymlink /mut/neovim;
    #   };
    # };

    editorconfig = {
      enable = true;
      settings = {
        "*" = {
          trim_trailing_whitespace = true;
          insert_final_newline = true;
        };
        "*.yaml" = {
          indent_style = "space";
          indent_size = 2;
        };
        "*.nix" = {
          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
        bat
        nil
        shellcheck
        vale
      ];
      plugins = with pkgs.vimPlugins; [
        # highlighting
        nvim-treesitter.withAllGrammars
        playground
        gruvbox-material
        kanagawa-nvim
        lsp_lines-nvim
        gitsigns-nvim
        vim-helm

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

        # Coding
        fzf-lua
        nvim-lspconfig
        null-ls-nvim
        lsp_signature-nvim
        nvim-dap
        nvim-dap-ui
        nvim-dap-python
        luasnip
        vim-test
        nvim-lint

        # cmp
        nvim-cmp
        cmp-cmdline
        cmp-nvim-lsp
        cmp-buffer
        cmp-path
        cmp_luasnip

        # trying out lisp
        # conjure
        vim-racket
        nvim-parinfer
        hotpot-nvim
      ];
    };
  };
}