{ pkgs, lib, inputs, ... }:

let
  inherit (lib) readFile;
in
{
  config.home-manager.users.moritz.programs.neovim.lazy.plugins = [
    {
      plugin = pkgs.vimPlugins.which-key-nvim;
      lazy = false;
      conf = readFile ./lua/which-key-nvim.lua;
    }
    {
      plugin = pkgs.vimPlugins.catppuccin-nvim;
      conf = readFile ./lua/catppuccin-nvim.lua;
      lazy = false;
      priority = 99;
    }
    {
      plugin = pkgs.vimPlugins.todo-comments-nvim;
      dependencies = [{ plugin = pkgs.vimPlugins.plenary-nvim; }];
      opts = { };
    }
    {
      plugin = pkgs.vimPlugins.dressing-nvim;
      event = [ "VeryLazy" ];
    }
    {
      plugin = pkgs.vimPlugins.gitsigns-nvim;
      event = [ "BufReadPost" "BufNewFile" ];
      conf = readFile ./lua/gitsigns-nvim.lua;
      dependencies = [{ plugin = pkgs.vimPlugins.which-key-nvim; }];
    }
    {
      plugin = pkgs.vimPlugins.pkgs.vimUtils.buildVimPlugin {
        pname = "hawtkeys-nvim";
        version = lib.my.mkVersionInput inputs.hawtkeys-nvim;
        src = inputs.hawtkeys-nvim;
      };
      cmd = [ "Hawtkeys" "HawtkeysAll" "HawtkeysDupes" ];
      opts = { };
      dependencies = [
        { plugin = pkgs.vimPlugins.plenary-nvim; }
        { plugin = pkgs.vimPlugins.nvim-treesitter; }
      ];
    }
  ];
}
