{ config, lib, ... }: with lib; with builtins; let cfg = config.vim; wrapLuaConfig = luaConfig: '' lua << EOF ${optionalString cfg.enableLuaLoader '' vim.loader.enable() ''} ${luaConfig} EOF ''; mkBool = value: description: mkOption { type = types.bool; default = value; description = description; }; # Most of the keybindings code is highly inspired by pta2002/nixvim. Thank you! mapConfigOptions = { silent = mkBool false (nvim.nmd.asciiDoc "Whether this mapping should be silent. Equivalent to adding to a map."); nowait = mkBool false (nvim.nmd.asciiDoc "Whether to wait for extra input on ambiguous mappings. Equivalent to adding to a map."); script = mkBool false (nvim.nmd.asciiDoc "Equivalent to adding