diff --git a/modules/highlights.nix b/modules/highlights.nix new file mode 100644 index 00000000..7ba9297a --- /dev/null +++ b/modules/highlights.nix @@ -0,0 +1,30 @@ +{ config, lib, helpers, ... }: +with lib; +{ + options = { + highlight = mkOption { + type = types.attrsOf types.anything; + default = { }; + description = "Define highlight groups"; + example = '' + highlight = { + Comment.fg = '#ff0000'; + }; + ''; + }; + }; + + config = mkIf (config.highlight != { }) { + extraConfigLuaPost = '' + -- 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 + -- }} + ''; + }; +} diff --git a/tests/flake.lock b/tests/flake.lock index 032d8e6b..67900918 100644 --- a/tests/flake.lock +++ b/tests/flake.lock @@ -97,12 +97,12 @@ }, "locked": { "lastModified": 0, - "narHash": "sha256-2xKbMFW3jSlyvl1ZKoe9sNe4h5k5Qk410Dom4TU3nls=", - "path": "/nix/store/89k711hq8f8j87h2kadz5kivkcpxjv58-source", + "narHash": "sha256-3m9eDTuaK9RS8HpctJwSu1wnyx5/CILSGppr+6OjTPw=", + "path": "/nix/store/pp50jx20wrkbrkv3mxkwzckciy8xcqy2-source", "type": "path" }, "original": { - "path": "/nix/store/89k711hq8f8j87h2kadz5kivkcpxjv58-source", + "path": "/nix/store/pp50jx20wrkbrkv3mxkwzckciy8xcqy2-source", "type": "path" } }, @@ -116,12 +116,12 @@ }, "locked": { "lastModified": 0, - "narHash": "sha256-2xKbMFW3jSlyvl1ZKoe9sNe4h5k5Qk410Dom4TU3nls=", - "path": "/nix/store/89k711hq8f8j87h2kadz5kivkcpxjv58-source", + "narHash": "sha256-3m9eDTuaK9RS8HpctJwSu1wnyx5/CILSGppr+6OjTPw=", + "path": "/nix/store/pp50jx20wrkbrkv3mxkwzckciy8xcqy2-source", "type": "path" }, "original": { - "path": "/nix/store/89k711hq8f8j87h2kadz5kivkcpxjv58-source", + "path": "/nix/store/pp50jx20wrkbrkv3mxkwzckciy8xcqy2-source", "type": "path" } }, diff --git a/tests/flake.nix b/tests/flake.nix index adff2976..3305bbab 100644 --- a/tests/flake.nix +++ b/tests/flake.nix @@ -211,6 +211,13 @@ lspkind.enable = true; }; }; + + highlight = build { + options.termguicolors = true; + highlight = { + Normal.fg = "#ff0000"; + }; + }; }; })) // { nixosConfigurations.nixvim-machine = nixpkgs.lib.nixosSystem {