nix-community.nixvim/modules/highlights.nix

57 lines
1.2 KiB
Nix
Raw Normal View History

2022-12-29 17:34:47 +00:00
{ config, lib, ... }:
let
helpers = import ../lib/helpers.nix { inherit lib; };
2022-12-29 17:34:47 +00:00
in
2022-11-11 02:15:23 +00:00
with lib;
{
options = {
highlight = mkOption {
type = types.attrsOf types.anything;
default = { };
description = "Define highlight groups";
example = ''
highlight = {
Comment.fg = '#ff0000';
};
'';
};
match = mkOption {
type = types.attrsOf types.str;
default = { };
description = "Define match groups";
example = ''
match = {
ExtraWhitespace = '\\s\\+$';
};
'';
};
2022-11-11 02:15:23 +00:00
};
2023-01-21 17:21:12 +00:00
config = mkIf (config.highlight != { } || config.match != { }) {
extraConfigLuaPost = (optionalString (config.highlight != { }) ''
2022-11-11 02:15:23 +00:00
-- Highlight groups {{
do
local highlights = ${helpers.toLuaObject config.highlight}
for k,v in pairs(highlights) do
vim.api.nvim_set_hl(0, k, v)
end
end
-- }}
'') +
2023-01-21 17:21:12 +00:00
(optionalString (config.match != { }) ''
-- Match groups {{
do
local match = ${helpers.toLuaObject config.match}
for k,v in pairs(match) do
vim.fn.matchadd(k, v)
end
end
-- }}
'');
2022-11-11 02:15:23 +00:00
};
}