From 517a6aa06e40a9e66755f348ff15aa9dede822a3 Mon Sep 17 00:00:00 2001 From: Nowaaru Date: Mon, 4 Nov 2024 23:40:44 -0700 Subject: [PATCH] utility/precognition: convert to setupOpts honestly raf was cooking with this one. it's much nicer to use compared to interpolation lol --- configuration.nix | 28 ++++---- .../utility/motion/precognition/config.nix | 14 +--- .../motion/precognition/precognition.nix | 64 ++++++++++--------- 3 files changed, 51 insertions(+), 55 deletions(-) diff --git a/configuration.nix b/configuration.nix index af5efec..29179ee 100644 --- a/configuration.nix +++ b/configuration.nix @@ -168,21 +168,23 @@ isMaximal: { precognition = { enable = true; - startVisible = true; - showBlankVirtLine = true; + setupOpts = { + startVisible = true; + showBlankVirtLine = true; - # highlightColor - automatically set by theme - disabled_fts = ["startify" "alpha" "dashboard"]; - gutterHints = { - gg = { - text = "gg"; - prio = 2; + # highlightColor - automatically set by theme + disabled_fts = ["startify" "alpha" "dashboard"]; + gutterHints = { + gg = { + text = "gg"; + prio = 2; + }; }; - }; - hints = { - Caret = { - text = "^"; - prio = 10; + hints = { + Caret = { + text = "^"; + prio = 10; + }; }; }; }; diff --git a/modules/plugins/utility/motion/precognition/config.nix b/modules/plugins/utility/motion/precognition/config.nix index 25fceda..6535e33 100644 --- a/modules/plugins/utility/motion/precognition/config.nix +++ b/modules/plugins/utility/motion/precognition/config.nix @@ -4,9 +4,6 @@ ... }: let inherit (lib.modules) mkIf; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; - inherit (builtins) toString; cfg = config.vim.utility.motion.precognition; in { @@ -17,15 +14,8 @@ in { "precognition-nvim" ]; - vim.pluginRC.precognition-nvim = entryAnywhere '' - require("precognition").setup({ - startVisible = ${toString cfg.startVisible}, - showBlankVirtLine = ${toString cfg.showBlankVirtLine}, - highlightColor = (${toLuaObject cfg.highlightColor}), --{ link = "Comment" }, - hints = (${toLuaObject cfg.hints}), - gutterHints = (${toLuaObject cfg.gutterHints}), - disabled_fts = (${toLuaObject cfg.disabled_fts}), - }); + vim.luaConfigRC.precognition = lib.nvim.dag.entryAnywhere '' + require('precognition').setup(${lib.nvim.lua.toLuaObject cfg.setupOpts}) ''; }; } diff --git a/modules/plugins/utility/motion/precognition/precognition.nix b/modules/plugins/utility/motion/precognition/precognition.nix index 9c42e0f..8e60184 100644 --- a/modules/plugins/utility/motion/precognition/precognition.nix +++ b/modules/plugins/utility/motion/precognition/precognition.nix @@ -1,6 +1,8 @@ -{lib, ...}: let +{lib, ...}: +let inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.types) attrsOf listOf str bool int submodule; + inherit (lib.nvim.types) mkPluginSetupOption; mkHintType = description: mkOption { @@ -25,41 +27,43 @@ in { options.vim.utility.motion.precognition = { enable = mkEnableOption "precognition.nvim plugin"; - startVisible = mkOption { - type = bool; - description = "Whether to start 'precognition' automatically."; - default = true; - }; + setupOpts = mkPluginSetupOption "precognition.nvim" { + startVisible = mkOption { + type = bool; + description = "Whether to start 'precognition' automatically."; + default = true; + }; - showBlankVirtLine = mkOption { - type = bool; - description = "Whether to show a blank virtual line when no movements are shown."; - default = true; - }; + showBlankVirtLine = mkOption { + type = bool; + description = "Whether to show a blank virtual line when no movements are shown."; + default = true; + }; - highlightColor = mkOption { - type = attrsOf str; + highlightColor = mkOption { + type = attrsOf str; - example = literalExpression '' - { link = "Comment"; } - # or - { foreground = "#0000FF"; background = "#000000"; }; - ''; - default = {link = "Comment";}; - description = '' - The highlight for the virtual text. - ''; - }; + example = literalExpression '' + { link = "Comment"; } + # or + { foreground = "#0000FF"; background = "#000000"; }; + ''; + default = {link = "Comment";}; + description = '' + The highlight for the virtual text. + ''; + }; - hints = mkHintType "What motions display and at what priority."; + hints = mkHintType "What motions display and at what priority."; - gutterHints = - mkHintType "What motions display and at what priority. Only appears in gutters."; + gutterHints = + mkHintType "What motions display and at what priority. Only appears in gutters."; - disabled_fts = mkOption { - type = listOf str; - default = ["startify"]; - example = literalExpression ''["startify"]''; + disabled_fts = mkOption { + type = listOf str; + default = ["startify"]; + example = literalExpression ''["startify"]''; + }; }; }; }