diff --git a/modules/nixvim/default.nix b/modules/nixvim/default.nix index 38fbe87e..0ac73c84 100644 --- a/modules/nixvim/default.nix +++ b/modules/nixvim/default.nix @@ -1,6 +1,7 @@ { imports = [ ./keyunmaps.nix + ./plugins/dressing-nvim.nix ./plugins/firenvim.nix ./plugins/lush-nvim.nix ./plugins/legendary-nvim.nix diff --git a/modules/nixvim/plugins/dressing-nvim.nix b/modules/nixvim/plugins/dressing-nvim.nix new file mode 100644 index 00000000..bd86dc5b --- /dev/null +++ b/modules/nixvim/plugins/dressing-nvim.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, helpers, ... }: + +let + cfg = config.plugins.dressing-nvim; +in +{ + options.plugins.dressing-nvim = { + enable = lib.mkEnableOption "dressing.nvim configuration"; + + package = helpers.mkPackageOption "dressing.nvim" pkgs.vimPlugins.dressing-nvim; + + settings = lib.mkOption { + type = with lib.types; attrsOf anything; + default = { }; + example = { + input = { + enabled = true; + default_prompt = "Input"; + trim_prompt = false; + }; + select = { + enabled = true; + backend = [ "telescope" "fzf_lua" "builtin" "nui" ]; + }; + }; + description = '' + Settings to be passed as argument to plugin's `setup` method. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + extraPlugins = [ cfg.package ]; + + extraConfigLua = '' + require('dressing').setup(${helpers.toLuaObject cfg.settings}) + ''; + }; +}