{ lib, ... }:
{
  # TODO: added 2025-04-06
  deprecateExtraOptions = true;
  optionsRenamedToSettings = [
    "diffBinaries"
    "enhancedDiffHl"
    "gitCmd"
    "hgCmd"
    "useIcons"
    "showHelpHints"
    "watchIndex"
    [
      "icons"
      "folderClosed"
    ]
    [
      "icons"
      "folderOpen"
    ]
    [
      "signs"
      "folderClosed"
    ]
    [
      "signs"
      "folderOpen"
    ]
    [
      "signs"
      "done"
    ]
    [
      "view"
      "default"
      "layout"
    ]
    [
      "view"
      "default"
      "winbarInfo"
    ]
    [
      "view"
      "mergeTool"
      "layout"
    ]
    [
      "view"
      "mergeTool"
      "disableDiagnostics"
    ]
    [
      "view"
      "mergeTool"
      "winbarInfo"
    ]
    [
      "filePanel"
      "listingStyle"
    ]
    [
      "filePanel"
      "treeOptions"
      "flattenDirs"
    ]
    [
      "filePanel"
      "treeOptions"
      "folderStatuses"
    ]
    [
      "filePanel"
      "winConfig"
      "type"
    ]
    [
      "filePanel"
      "winConfig"
      "width"
    ]
    [
      "filePanel"
      "winConfig"
      "height"
    ]
    [
      "filePanel"
      "winConfig"
      "position"
    ]
    [
      "filePanel"
      "winConfig"
      "relative"
    ]
    [
      "filePanel"
      "winConfig"
      "win"
    ]
    [
      "filePanel"
      "winConfig"
      "winOpts"
    ]
    [
      "hooks"
      "viewOpened"
    ]
    [
      "hooks"
      "viewClosed"
    ]
    [
      "hooks"
      "viewEnter"
    ]
    [
      "hooks"
      "viewLeave"
    ]
    [
      "hooks"
      "viewPostLayout"
    ]
    [
      "hooks"
      "diffBufRead"
    ]
    [
      "hooks"
      "diffBufWinEnter"
    ]
    [
      "view"
      "fileHistory"
      "layout"
    ]
    [
      "view"
      "fileHistory"
      "winbarInfo"
    ]
    [
      "signs"
      "foldClosed"
    ]
    [
      "signs"
      "foldOpen"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "type"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "width"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "height"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "position"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "relative"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "win"
    ]
    [
      "fileHistoryPanel"
      "winConfig"
      "winOpts"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "type"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "width"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "height"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "position"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "relative"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "win"
    ]
    [
      "commitLogPanel"
      "winConfig"
      "winOpts"
    ]
    [
      "defaultArgs"
      "diffviewOpen"
    ]
    [
      "defaultArgs"
      "diffviewFileHistory"
    ]
    [
      "keymaps"
      "disableDefaults"
    ]
    [
      "keymaps"
      "view"
    ]
    [
      "keymaps"
      "diff1"
    ]
    [
      "keymaps"
      "diff2"
    ]
    [
      "keymaps"
      "diff3"
    ]
    [
      "keymaps"
      "diff4"
    ]
    [
      "keymaps"
      "filePanel"
    ]
    [
      "keymaps"
      "fileHistoryPanel"
    ]
    [
      "keymaps"
      "optionPanel"
    ]
    [
      "keymaps"
      "helpPanel"
    ]
    "disableDefaultKeymaps"
  ]
  ++
    lib.concatMap
      (
        vcs:
        lib.concatMap
          (
            fileType:
            lib.map
              (optionName: [
                "fileHistoryPanel"
                "logOptions"
                vcs
                fileType
                optionName
              ])
              [
                "base"
                "revRange"
                "pathArgs"
                "follow"
                "firstParent"
                "showPulls"
                "reflog"
                "all"
                "merges"
                "noMerges"
                "reverse"
                "cherryPick"
                "leftOnly"
                "rightOnly"
                "maxCount"
                "l"
                "diffMerges"
                "author"
                "grep"
                "g"
                "s"
              ]
          )
          [
            "singleFile"
            "multiFile"
          ]
      )
      [
        "git"
        "hg"
      ];
}
