diff --git a/modules/plugins/utility/motion/precognition/precognition.nix b/modules/plugins/utility/motion/precognition/precognition.nix index 70e12a2..9c42e0f 100644 --- a/modules/plugins/utility/motion/precognition/precognition.nix +++ b/modules/plugins/utility/motion/precognition/precognition.nix @@ -1,8 +1,28 @@ {lib, ...}: let inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.types) attrsOf listOf str bool int submodule; + + mkHintType = description: + mkOption { + inherit description; + default = {}; + type = attrsOf (submodule { + options = { + text = mkOption { + type = str; + description = "The easier-to-read depiction of the motion."; + }; + prio = mkOption { + type = int; + description = "The priority of the hint."; + example = 10; + default = 1; + }; + }; + }); + }; in { - options.vim.utility.motion.precognition = rec { + options.vim.utility.motion.precognition = { enable = mkEnableOption "precognition.nvim plugin"; startVisible = mkOption { @@ -31,34 +51,10 @@ in { ''; }; - hints = mkOption { - default = {}; - description = '' - What motions display and at what priority."; - ''; - type = attrsOf (submodule { - options = { - text = mkOption { - type = str; - description = "The easier-to-read depiction of the motion."; - }; - prio = mkOption { - type = int; - description = "The priority of the hint."; - example = 10; - default = 1; - }; - }; - }); - }; + hints = mkHintType "What motions display and at what priority."; gutterHints = - hints - // { - description = '' - What motions display and at what priority. Only appears in gutters. - ''; - }; + mkHintType "What motions display and at what priority. Only appears in gutters."; disabled_fts = mkOption { type = listOf str;