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

@ -19,7 +19,7 @@ with lib;
};
config = {
extraConfigLuaPre = optionalString (config.diagnostics != { }) ''
extraConfigLuaPre = mkIf (config.diagnostics != { }) ''
vim.diagnostic.config(${helpers.toLuaObject config.diagnostics})
'';
};