{ config, lib, ... }: let inherit (lib.options) mkEnableOption; inherit (lib.modules) mkRenamedOptionModule; inherit (lib.nvim.binds) mkMappingOption; in { imports = [ (mkRenamedOptionModule ["vim" "git" "gitsigns" "codeActions" "vim" "gitsigns" "codeActions"] ["vim" "git" "gitsigns" "codeActions" "enable"]) ]; options.vim.git.gitsigns = { enable = mkEnableOption "gitsigns" // {default = config.vim.git.enable;}; codeActions.enable = mkEnableOption "gitsigns codeactions through null-ls"; mappings = { nextHunk = mkMappingOption "Next hunk [Gitsigns]" "]c"; previousHunk = mkMappingOption "Previous hunk [Gitsigns]" "[c"; stageHunk = mkMappingOption "Stage hunk [Gitsigns]" "hs"; undoStageHunk = mkMappingOption "Undo stage hunk [Gitsigns]" "hu"; resetHunk = mkMappingOption "Reset hunk [Gitsigns]" "hr"; stageBuffer = mkMappingOption "Stage buffer [Gitsigns]" "hS"; resetBuffer = mkMappingOption "Reset buffer [Gitsigns]" "hR"; previewHunk = mkMappingOption "Preview hunk [Gitsigns]" "hP"; blameLine = mkMappingOption "Blame line [Gitsigns]" "hb"; toggleBlame = mkMappingOption "Toggle blame [Gitsigns]" "tb"; diffThis = mkMappingOption "Diff this [Gitsigns]" "hd"; diffProject = mkMappingOption "Diff project [Gitsigns]" "hD"; toggleDeleted = mkMappingOption "Toggle deleted [Gitsigns]" "td"; }; }; }