{ lib }:
{
  empty = {
    plugins.coverage.enable = true;
  };

  example = {
    plugins.coverage = {
      enable = true;

      settings = {
        commands = true;
        auto_reload = false;
        auto_reload_timeout_ms = 500;
        highlights = {
          covered = {
            fg = "#B7F071";
          };
          uncovered = {
            fg = "#F07178";
          };
          partial = {
            fg = "#AA71F0";
          };
          summary_border = {
            link = "FloatBorder";
          };
          summary_normal = {
            link = "NormalFloat";
          };
          summary_cursorLine = {
            link = "CursorLine";
          };
          summary_header = {
            style = "bold,underline";
            sp = "bg";
          };
          summary_pass = {
            link = "CoverageCovered";
          };
          summary_fail = {
            link = "CoverageUncovered";
          };
        };
        load_coverage_cb = lib.nixvim.mkRaw ''
          function (ftype)
            vim.notify("Loaded " .. ftype .. " coverage")
          end
        '';
        signs = {
          covered = {
            hl = "CoverageCovered";
            text = "▎";
          };
          uncovered = {
            hl = "CoverageUncovered";
            text = "▎";
          };
          partial = {
            hl = "CoveragePartial";
            text = "▎";
          };
        };
        sign_group = "coverage";
        summary = {
          width_percentage = 0.7;
          height_percentage = 0.5;
          borders = {
            topleft = "╭";
            topright = "╮";
            top = "─";
            left = "│";
            right = "│";
            botleft = "╰";
            botright = "╯";
            bot = "─";
            highlight = "Normal:CoverageSummaryBorder";
          };
          min_coverage = 80;
        };
        lang = {
          python = {
            coverage_file = ".coverage";
            coverage_command = "coverage json --fail-under=0 -q -o -";
          };
          ruby = {
            coverage_file = "coverage/coverage.json";
          };
        };
        lcov_file.__raw = "nil";
      };
    };
  };
}
