modules: avoid setting empty strings to extraConfig* options

Problem:  Some modules are setting empty strings to extraConfig* options
          with the intention to not generate any config. But empty
          strings are also values, so they are still concatenated in the
          final value of extraConfig* options. This results in a
          multiple empty strings in extraConfigs.

Solution: Avoid using optionalString when setting values to extraConfig*
          options. Use mkIf instead.

          This commit also fixes mkIf condition in autocmd module.

          `mkNeovimPlugin` is a special case. To avoid evaluating
          caller's arguments mkMerge/optionalAttrs pattern is used
          instead.
This commit is contained in:
Stanislav Asunkin 2024-07-21 20:59:16 +03:00 committed by Gaétan Lepage
parent 299d0406bb
commit 9317537848
7 changed files with 80 additions and 73 deletions

View file

@ -90,7 +90,7 @@ with lib;
${concatStringsSep "\n" luaDefs}
'';
extraConfigLua = optionalString (config.keymaps != [ ]) ''
extraConfigLua = mkIf (config.keymaps != [ ]) ''
-- Set up keybinds {{{
do
local __nixvim_binds = ${helpers.toLuaObject (map normalizeMapping config.keymaps)}