From 831a5db8face38e8281c6530b6ead17b5a3999dd Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 24 Feb 2025 16:56:15 +0300 Subject: [PATCH] utility/yanky-nvim: fix plugin setupOpts; assert when shada is disabled --- modules/plugins/utility/yanky-nvim/config.nix | 11 +++++++++++ modules/plugins/utility/yanky-nvim/yanky-nvim.nix | 11 ++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/modules/plugins/utility/yanky-nvim/config.nix b/modules/plugins/utility/yanky-nvim/config.nix index 138fd07d..4a74fa75 100644 --- a/modules/plugins/utility/yanky-nvim/config.nix +++ b/modules/plugins/utility/yanky-nvim/config.nix @@ -11,6 +11,7 @@ cfg = config.vim.utility.yanky-nvim; usingSqlite = cfg.setupOpts.ring.storage == "sqlite"; + usingShada = cfg.setupOpts.ring.storage == "shada"; in { config = mkIf cfg.enable { vim = { @@ -28,5 +29,15 @@ in { require("yanky").setup(${toLuaObject cfg.setupOpts}); ''; }; + + assertions = [ + { + assertion = usingShada && ((config.vim.options.shada or "") == ""); + message = '' + Yanky.nvim is configured to use 'shada' for the storage backend, but shada is disabled + in 'vim.options'. Please re-enable shada, or switch to a different backend. + ''; + } + ]; }; } diff --git a/modules/plugins/utility/yanky-nvim/yanky-nvim.nix b/modules/plugins/utility/yanky-nvim/yanky-nvim.nix index 95d6a211..72f55d93 100644 --- a/modules/plugins/utility/yanky-nvim/yanky-nvim.nix +++ b/modules/plugins/utility/yanky-nvim/yanky-nvim.nix @@ -1,13 +1,14 @@ {lib, ...}: let - inherit (lib.options) mkEnableOption mkOption; + inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) enum; + inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.utility.yanky-nvim = { enable = mkEnableOption '' improved Yank and Put functionalities for Neovim [yanky-nvim] ''; - setupOpts = { + setupOpts = mkPluginSetupOption "yanky-nvim" { ring.storage = mkOption { type = enum ["shada" "sqlite" "memory"]; default = "shada"; @@ -15,11 +16,11 @@ in { description = '' storage mode for ring values. - - shada: this will save pesistantly using Neovim ShaDa feature. + - **shada**: this will save pesistantly using Neovim ShaDa feature. This means that history will be persisted between each session of Neovim. - - memory: each Neovim instance will have his own history and it will be + - **memory**: each Neovim instance will have his own history and it will be lost between sessions. - - sqlite: more reliable than `shada`, requires `sqlite.lua` as a dependency. + - **sqlite**: more reliable than `shada`, requires `sqlite.lua` as a dependency. nvf will add this dependency to `PATH` automatically. ''; };