{ config, lib, ... }: let inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.types) int bool str nullOr either listOf attrsOf; inherit (lib.nvim.binds) mkMappingOption; cfg = config.vim.visuals; in { options.vim.visuals = { enable = mkEnableOption "Visual enhancements."; smoothScroll.enable = mkEnableOption "smooth scrolling [cinnamon-nvim]"; cellularAutomaton = { enable = mkEnableOption "cellular automaton [cellular-automaton]"; mappings = { makeItRain = mkMappingOption "Make it rain [cellular-automaton]" "fml"; }; }; highlight-undo = { enable = mkEnableOption "highlight undo [highlight-undo]"; highlightForCount = mkOption { type = bool; default = true; description = '' Enable support for highlighting when a is provided before the key If set to false it will only highlight when the mapping is not prefixed with a ''; }; duration = mkOption { type = int; description = "Duration of highlight"; default = 500; }; undo = { hlGroup = mkOption { type = str; description = "Highlight group for undo"; default = "HighlightUndo"; }; }; redo = { hlGroup = mkOption { type = str; description = "Highlight group for redo"; default = "HighlightUndo"; }; }; }; }; }