summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/default.nix
blob: 7c63e5fa156b6d7adeea53464dccd9e741630b29 (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
{
  pkgs,
  inputs,
}: let
  plenary-nvim-git = pkgs.vimPlugins.plenary-nvim.overrideAttrs (old: {
    version = "git";
    src = pkgs.fetchFromGitHub {
      owner = "emmanueltouzery";
      repo = "plenary.nvim";
      rev = "7750bc895a1f06aa7a940f5aea43671a74143be0";
      sha256 = "sha256-9Un7ekhBxcnmFE1xjCCFTZ7eqIbmXvQexpnhduAg4M0=";
    };
  }); # go back to regular plenary when this commit is merged: https://github.com/nvim-lua/plenary.nvim/pull/649
  which-key-nvim-git = pkgs.vimPlugins.which-key-nvim.overrideAttrs (old: {
    version = "git";
    src = pkgs.fetchFromGitHub {
      owner = "cameronr";
      repo = "which-key.nvim";
      rev = "ab1a3b0d3005a95507ba6c18b96531d430370885";
      sha256 = "sha256-Zbs+Xd6kGfR+s/f6xhxXBdKJA2N4WqcJDPWVkGaM7S0=";
    };
  }); # go back to regular which-key when this commit is merged: https://github.com/folke/which-key.nvim/pull/974
in
  inputs.mnw.lib.wrap pkgs {
    neovim = pkgs.neovim-unwrapped;

    plugins = with pkgs.vimPlugins; {
      dev.config = {
        pure = ./config;
      };
      start = [
        # Core Plugins
        mini-nvim # Ton of small modules.
        nvim-lspconfig # Adds lsp presets.
        actions-preview-nvim # Adds a selector for LSP actions.
        nvim-treesitter.withAllGrammars # All treesitter grammars.
        tabby-nvim # Tab bar.
        lualine-nvim # Status line.
        telescope-nvim # Picker.
        # plenary-nvim # General Library.
        plenary-nvim-git
        alpha-nvim # Dashboard.
        persisted-nvim # Session manager.
        # which-key-nvim
        which-key-nvim-git
        snacks-nvim

        # Colorschemes
        oxocarbon-nvim # IBM Carbon themes.
        rose-pine # Rose Pine themes.
        kanagawa-nvim # Kanagawa themes.
        everforest # Green themes.
        nordic-nvim # Warm dark nordic theme.

        # Miscellaneous Plugins
        presence-nvim # Discord RPC for nvim.
        cellular-automaton-nvim # Fun useless plugin.
        vim-wakatime # For hack club challenge.
      ];
      opt = [];
    };

    luaFiles = [./config/init.lua];

    extraBinPath = with pkgs; [
      # LSP Servers
      lua-language-server # Lua LS
      nixd # Nix LS
      marksman # Markdown LS

      # Formatters
      alejandra # Nix Formatter

      # Extra Tools
      ripgrep
      fd

      wakatime-cli
    ];
  }