{ lib, nixvimOptions, }: with lib; { mkSettingsOption = pluginName: options: mkOption { type = with types; submodule { freeformType = with types; attrsOf anything; inherit options; }; description = '' Options provided to the `require('${pluginName}').setup` function. ''; default = {}; example = { foo_bar = 42; hostname = "localhost:8080"; callback.__raw = '' function() print('nixvim') end ''; }; }; extraOptionsOptions = { extraOptions = mkOption { default = {}; type = with types; attrsOf anything; description = '' These attributes will be added to the table parameter for the setup function. (Can override other attributes set by nixvim) ''; }; }; }