2022-11-11 02:15:23 +00: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
|
|
|
}:
|
|
|
|
{
|
|
|
|
options = {
|
2024-08-30 14:37:41 -05:00
|
|
|
highlight = lib.mkOption {
|
2024-09-27 08:07:20 +01:00
|
|
|
type = lib.types.attrsOf lib.types.highlight;
|
2023-11-06 15:04:08 +01:00
|
|
|
default = { };
|
2024-02-08 21:33:56 -06:00
|
|
|
description = "Define new highlight groups";
|
2024-06-19 16:20:13 +02:00
|
|
|
example = {
|
|
|
|
MacchiatoRed.fg = "#ed8796";
|
|
|
|
};
|
2024-02-08 21:33:56 -06:00
|
|
|
};
|
|
|
|
|
2024-08-30 14:37:41 -05:00
|
|
|
highlightOverride = lib.mkOption {
|
2024-09-27 08:07:20 +01:00
|
|
|
type = lib.types.attrsOf lib.types.highlight;
|
2024-02-08 21:33:56 -06:00
|
|
|
default = { };
|
|
|
|
description = "Define highlight groups to override existing highlight";
|
2024-06-19 16:20:13 +02:00
|
|
|
example = {
|
|
|
|
Comment.fg = "#ff0000";
|
|
|
|
};
|
2023-11-06 15:04:08 +01:00
|
|
|
};
|
2023-01-21 18:09:58 +01:00
|
|
|
|
2024-08-30 14:37:41 -05:00
|
|
|
match = lib.mkOption {
|
|
|
|
type = lib.types.attrsOf lib.types.str;
|
2023-11-06 15:04:08 +01:00
|
|
|
default = { };
|
|
|
|
description = "Define match groups";
|
2024-06-19 16:20:13 +02:00
|
|
|
example = {
|
|
|
|
ExtraWhitespace = "\\s\\+$";
|
|
|
|
};
|
2023-01-21 18:09:58 +01:00
|
|
|
};
|
2023-11-06 15:04:08 +01:00
|
|
|
};
|
|
|
|
|
2024-08-30 14:37:41 -05:00
|
|
|
config = lib.mkMerge [
|
2024-07-21 20:59:16 +03:00
|
|
|
{
|
|
|
|
extraConfigLuaPre =
|
2024-08-30 14:37:41 -05:00
|
|
|
lib.mkIf (config.highlight != { })
|
2024-07-21 20:59:16 +03:00
|
|
|
# lua
|
|
|
|
''
|
|
|
|
-- Highlight groups {{
|
|
|
|
do
|
2024-12-15 20:32:14 +01:00
|
|
|
local highlights = ${lib.nixvim.toLuaObject config.highlight}
|
2022-11-11 02:15:23 +00:00
|
|
|
|
2024-07-21 20:59:16 +03:00
|
|
|
for k,v in pairs(highlights) do
|
|
|
|
vim.api.nvim_set_hl(0, k, v)
|
|
|
|
end
|
2024-02-08 21:33:56 -06:00
|
|
|
end
|
2024-07-21 20:59:16 +03:00
|
|
|
-- }}
|
|
|
|
'';
|
|
|
|
extraConfigLuaPost =
|
2024-08-30 14:37:41 -05:00
|
|
|
lib.mkIf (config.highlightOverride != { })
|
2024-07-21 20:59:16 +03:00
|
|
|
# lua
|
|
|
|
''
|
|
|
|
-- Highlight groups {{
|
|
|
|
do
|
2024-12-15 20:32:14 +01:00
|
|
|
local highlights = ${lib.nixvim.toLuaObject config.highlightOverride}
|
2022-11-11 02:15:23 +00:00
|
|
|
|
2024-07-21 20:59:16 +03:00
|
|
|
for k,v in pairs(highlights) do
|
|
|
|
vim.api.nvim_set_hl(0, k, v)
|
|
|
|
end
|
2023-02-20 11:42:13 +01:00
|
|
|
end
|
2024-02-08 21:33:56 -06:00
|
|
|
-- }}
|
2024-07-21 20:59:16 +03:00
|
|
|
'';
|
|
|
|
}
|
|
|
|
{
|
|
|
|
extraConfigLuaPre =
|
2024-08-30 14:37:41 -05:00
|
|
|
lib.mkIf (config.match != { })
|
2024-07-21 20:59:16 +03:00
|
|
|
# lua
|
|
|
|
''
|
|
|
|
-- Match groups {{
|
|
|
|
do
|
2024-12-15 20:32:14 +01:00
|
|
|
local match = ${lib.nixvim.toLuaObject config.match}
|
2024-02-08 21:33:56 -06:00
|
|
|
|
2024-07-21 20:59:16 +03:00
|
|
|
for k,v in pairs(match) do
|
|
|
|
vim.fn.matchadd(k, v)
|
|
|
|
end
|
2024-05-05 19:39:35 +02:00
|
|
|
end
|
2024-07-21 20:59:16 +03:00
|
|
|
-- }}
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
];
|
2023-11-06 15:04:08 +01:00
|
|
|
}
|