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

let
  inherit (lib) mkEnableOption mkIf readFile;
in
{
  home-manager.users.moritz.programs.nixvim = {
    plugins = {
      lspsaga = {
        enable = true;
        codeAction.keys.quit = "<esc>";
        lightbulb.virtualText = false;
      };
      web-devicons.enable = true;
    };
    keymapsOnEvents = {
      LspAttach = [
        {
          key = "<leader>q";
          action = "<cmd>Lspsaga code_action<cr>";
          options.desc = "Quickfix";
          options.buffer = true;
        }
        {
          key = "gd";
          action = "<cmd>Lspsaga goto_definition<cr>";
          options.desc = "Goto Definition";
          options.buffer = true;
        }
        {
          key = "<leader>r";
          action = "<cmd>Lspsaga rename<cr>";
          options.desc = "Rename";
          options.buffer = true;
        }
        {
          key = "K";
          action = "<cmd>Lspsaga hover_doc<cr>";
          options.desc = "Hover";
          options.buffer = true;
        }
      ];
    };
  };
}