mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
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:
parent
299d0406bb
commit
9317537848
7 changed files with 80 additions and 73 deletions
|
@ -110,11 +110,12 @@ with lib;
|
|||
{
|
||||
extraPlugins = (optional installPackage cfg.package) ++ extraPlugins;
|
||||
inherit extraPackages;
|
||||
|
||||
${extraConfigNamespace} = optionalString callSetup ''
|
||||
}
|
||||
(optionalAttrs callSetup {
|
||||
${extraConfigNamespace} = ''
|
||||
require('${luaName}')${setup}(${optionalString (cfg ? settings) (toLuaObject cfg.settings)})
|
||||
'';
|
||||
}
|
||||
})
|
||||
(optionalAttrs (isColorscheme && (colorscheme != null)) { colorscheme = mkDefault colorscheme; })
|
||||
(extraConfig cfg)
|
||||
]);
|
||||
|
|
|
@ -42,7 +42,7 @@ with lib;
|
|||
let
|
||||
inherit (config) autoGroups autoCmd;
|
||||
in
|
||||
mkIf (autoGroups != { } || autoCmd != { }) {
|
||||
mkIf (autoGroups != { } || autoCmd != [ ]) {
|
||||
# Introduced early October 2023.
|
||||
# TODO remove in early December 2023.
|
||||
assertions = [
|
||||
|
|
|
@ -19,7 +19,7 @@ with lib;
|
|||
};
|
||||
|
||||
config = {
|
||||
extraConfigLuaPre = optionalString (config.diagnostics != { }) ''
|
||||
extraConfigLuaPre = mkIf (config.diagnostics != { }) ''
|
||||
vim.diagnostic.config(${helpers.toLuaObject config.diagnostics})
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -35,50 +35,52 @@ with lib;
|
|||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
extraConfigLuaPre =
|
||||
(optionalString (config.highlight != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
do
|
||||
local highlights = ${helpers.toLuaObject config.highlight}
|
||||
config = mkMerge [
|
||||
{
|
||||
extraConfigLuaPre =
|
||||
mkIf (config.highlight != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
do
|
||||
local highlights = ${helpers.toLuaObject config.highlight}
|
||||
|
||||
for k,v in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, k, v)
|
||||
for k,v in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, k, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
-- }}
|
||||
''
|
||||
)
|
||||
+ (optionalString (config.match != { })
|
||||
# lua
|
||||
''
|
||||
-- Match groups {{
|
||||
do
|
||||
local match = ${helpers.toLuaObject config.match}
|
||||
|
||||
for k,v in pairs(match) do
|
||||
vim.fn.matchadd(k, v)
|
||||
end
|
||||
end
|
||||
-- }}
|
||||
''
|
||||
);
|
||||
'';
|
||||
extraConfigLuaPost =
|
||||
mkIf (config.highlightOverride != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
do
|
||||
local highlights = ${helpers.toLuaObject config.highlightOverride}
|
||||
|
||||
extraConfigLuaPost =
|
||||
optionalString (config.highlightOverride != { })
|
||||
# lua
|
||||
''
|
||||
-- Highlight groups {{
|
||||
do
|
||||
local highlights = ${helpers.toLuaObject config.highlightOverride}
|
||||
|
||||
for k,v in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, k, v)
|
||||
for k,v in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, k, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
-- }}
|
||||
'';
|
||||
};
|
||||
-- }}
|
||||
'';
|
||||
}
|
||||
{
|
||||
extraConfigLuaPre =
|
||||
mkIf (config.match != { })
|
||||
# lua
|
||||
''
|
||||
-- Match groups {{
|
||||
do
|
||||
local match = ${helpers.toLuaObject config.match}
|
||||
|
||||
for k,v in pairs(match) do
|
||||
vim.fn.matchadd(k, v)
|
||||
end
|
||||
end
|
||||
-- }}
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
@ -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)}
|
||||
|
|
|
@ -55,31 +55,35 @@ in
|
|||
};
|
||||
|
||||
config = {
|
||||
extraConfigLuaPre = concatLines (
|
||||
mapAttrsToList (
|
||||
optionName:
|
||||
{
|
||||
prettyName,
|
||||
luaVariableName,
|
||||
luaApi,
|
||||
...
|
||||
}:
|
||||
let
|
||||
varName = "nixvim_${luaVariableName}";
|
||||
optionDefinitions = config.${optionName};
|
||||
in
|
||||
optionalString (optionDefinitions != { }) ''
|
||||
-- Set up ${prettyName} {{{
|
||||
do
|
||||
local ${varName} = ${helpers.toLuaObject optionDefinitions}
|
||||
extraConfigLuaPre =
|
||||
let
|
||||
content = helpers.concatNonEmptyLines (
|
||||
mapAttrsToList (
|
||||
optionName:
|
||||
{
|
||||
prettyName,
|
||||
luaVariableName,
|
||||
luaApi,
|
||||
...
|
||||
}:
|
||||
let
|
||||
varName = "nixvim_${luaVariableName}";
|
||||
optionDefinitions = config.${optionName};
|
||||
in
|
||||
optionalString (optionDefinitions != { }) ''
|
||||
-- Set up ${prettyName} {{{
|
||||
do
|
||||
local ${varName} = ${helpers.toLuaObject optionDefinitions}
|
||||
|
||||
for k,v in pairs(${varName}) do
|
||||
vim.${luaApi}[k] = v
|
||||
end
|
||||
end
|
||||
-- }}}
|
||||
''
|
||||
) optionsAttrs
|
||||
);
|
||||
for k,v in pairs(${varName}) do
|
||||
vim.${luaApi}[k] = v
|
||||
end
|
||||
end
|
||||
-- }}}
|
||||
''
|
||||
) optionsAttrs
|
||||
);
|
||||
in
|
||||
mkIf (content != "") content;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ with lib;
|
|||
'';
|
||||
};
|
||||
|
||||
extraConfigLuaPre = lib.optionalString config.wrapRc ''
|
||||
extraConfigLuaPre = lib.mkIf config.wrapRc ''
|
||||
-- Ignore the user lua configuration
|
||||
vim.opt.runtimepath:remove(vim.fn.stdpath('config')) -- ~/.config/nvim
|
||||
vim.opt.runtimepath:remove(vim.fn.stdpath('config') .. "/after") -- ~/.config/nvim/after
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue