2022-09-18 11:19:23 +01:00
|
|
|
{
|
2023-02-20 11:42:13 +01:00
|
|
|
lib,
|
2023-11-06 15:04:08 +01:00
|
|
|
helpers,
|
|
|
|
config,
|
2023-02-20 11:42:13 +01:00
|
|
|
...
|
|
|
|
}:
|
2023-11-06 15:04:08 +01:00
|
|
|
with lib; {
|
2022-09-18 11:19:23 +01:00
|
|
|
options = {
|
|
|
|
options = mkOption {
|
|
|
|
type = types.attrsOf types.anything;
|
2023-02-20 11:42:13 +01:00
|
|
|
default = {};
|
2022-09-18 11:19:23 +01:00
|
|
|
description = "The configuration options, e.g. line numbers";
|
|
|
|
};
|
|
|
|
|
|
|
|
globals = mkOption {
|
|
|
|
type = types.attrsOf types.anything;
|
2023-02-20 11:42:13 +01:00
|
|
|
default = {};
|
2022-09-18 11:19:23 +01:00
|
|
|
description = "Global variables";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-04-22 13:51:06 +01:00
|
|
|
# Added to main 2024-03-29
|
|
|
|
# Backported 2024-04-22
|
|
|
|
imports = [
|
|
|
|
(mkAliasOptionModule ["opts"] ["options"])
|
|
|
|
];
|
|
|
|
|
2022-09-18 11:19:23 +01:00
|
|
|
config = {
|
2023-02-20 11:42:13 +01:00
|
|
|
extraConfigLuaPre =
|
|
|
|
optionalString (config.globals != {}) ''
|
|
|
|
-- Set up globals {{{
|
|
|
|
do
|
|
|
|
local nixvim_globals = ${helpers.toLuaObject config.globals}
|
2022-09-18 11:19:23 +01:00
|
|
|
|
2023-02-20 11:42:13 +01:00
|
|
|
for k,v in pairs(nixvim_globals) do
|
|
|
|
vim.g[k] = v
|
|
|
|
end
|
2022-09-18 11:19:23 +01:00
|
|
|
end
|
2023-02-20 11:42:13 +01:00
|
|
|
-- }}}
|
|
|
|
''
|
|
|
|
+ optionalString (config.options != {}) ''
|
|
|
|
-- Set up options {{{
|
|
|
|
do
|
|
|
|
local nixvim_options = ${helpers.toLuaObject config.options}
|
2022-09-18 11:19:23 +01:00
|
|
|
|
2023-02-20 11:42:13 +01:00
|
|
|
for k,v in pairs(nixvim_options) do
|
|
|
|
vim.opt[k] = v
|
|
|
|
end
|
2022-09-18 11:19:23 +01:00
|
|
|
end
|
2023-02-20 11:42:13 +01:00
|
|
|
-- }}}
|
|
|
|
'';
|
2022-09-18 11:19:23 +01:00
|
|
|
};
|
|
|
|
}
|