wrapper/lib: init with mkMappingOption

mkMappingOption wants to read a setting set in config without passing it
every time, so it should be defined in config.
This commit is contained in:
alfarel 2026-03-14 20:17:19 -04:00
commit 8b5ef2cf08
No known key found for this signature in database
5 changed files with 41 additions and 1 deletions

View file

@ -57,6 +57,7 @@
"rc"
"warnings"
"lazy"
"lib"
];
# Extra modules, such as deprecation warnings

View file

@ -1,5 +1,5 @@
{lib, ...}: let
inherit (lib.options) mkOption literalMD;
inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.types) either str listOf attrsOf nullOr submodule;
inherit (lib.nvim.config) mkBool;
@ -57,6 +57,8 @@
};
in {
options.vim = {
vendoredKeymaps = mkEnableOption "this project's vendored keymaps by default" // {default = true;};
keymaps = mkOption {
type = listOf mapType;
description = "Custom keybindings.";

View file

@ -0,0 +1,20 @@
{
config,
lib,
...
}: let
inherit (lib.options) mkOption;
inherit (lib.types) nullOr str;
in {
config.vim.lib = {
mkMappingOption = description: default:
mkOption {
type = nullOr str;
default =
if config.vim.vendoredKeymaps
then default
else null;
inherit description;
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./config.nix
./options.nix
];
}

View file

@ -0,0 +1,11 @@
{lib, ...}: let
inherit (lib.options) mkOption;
inherit (lib.types) attrsOf raw;
in {
options.vim.lib = mkOption {
# The second type should be one without merge semantics and which allows function values.
type = attrsOf raw;
default = {};
internal = true;
};
}