summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/default.nix
blob: 5fd60508a4fd1107b76f9821179b3350a1cc12f5 (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
{
  pkgs,
  inputs,
}: let
  # Get the markdown table mode plugin
  markdown-table-mode-nvim-git = pkgs.vimUtils.buildVimPlugin {
    name = "markdown-table-mode.nvim";
    version = "git";
    src = pkgs.fetchFromGitHub {
      owner = "Kicamon";
      repo = "markdown-table-mode.nvim";
      rev = "bb1ea9b76c1b29e15e14806fdfbb2319df5c06f1";
      sha256 = "sha256-Pwsp9QQiADvzMjn2jSiQ/MPVCYjVnugKu55gbjvlYDk=";
    };
  };
in
  inputs.mnw.lib.wrap pkgs {
    neovim = pkgs.neovim-unwrapped;
    plugins = with pkgs.vimPlugins; {
      dev.config = {
        pure = ./config;
        impure = "/home/culsans/Sync/setup/pkgs/custom-neovim/config";
      };
      start = [
        lz-n # Lazy loader
      ];
      opt = [
        # Can be lazy loaded.

        # UI Plugins
        nvim-treesitter.withAllGrammars # All treesitter grammars
        fzf-lua
        mini-pick
        mini-extra
        mini-clue
        mini-files
        mini-icons
        mini-base16
        mini-indentscope
        mini-completion
        blink-cmp

        # Completion Plugins
        luasnip
        friendly-snippets

        # Utility Plugins
        mini-pairs
        mini-bracketed
        mini-jump
        mini-ai
        mini-splitjoin
        mini-surround
        vim-nix # Indentation for nix files
        comment-box-nvim
        auto-session

        # Git Plugins
        mini-git
        mini-diff

        # Markdown Plugns
        render-markdown-nvim
        markdown-nvim
        markdown-table-mode-nvim-git
        img-clip-nvim

        # Colorschemes
        # nightfox-nvim
        # vim-gruvbox8
        # oxocarbon-nvim
      ];
    };
    luaFiles = [./config/init.lua];
    extraLuaPackages = ps: [
      ps.magick
    ];
    extraBinPath = with pkgs; [
      # LSP Servers
      lua-language-server # LS for Lua
      marksman # LS for Markdown
      nixd # LS for Nix
      ccls # LS for C languages

      # Extra Utils
      wl-clipboard
      fzf
      # ripgrep
      # gcc
      fd
      lazygit

      # Misc Dependencies
      python312Packages.pylatexenc
    ];
  }