{ config, lib, ... }: with lib; with builtins; let cfg = config.vim.utility.ccc; self = import ./ccc.nix {inherit lib;}; mappingDefinitions = self.options.vim.utility.ccc.mappings; mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; in { config = mkIf (cfg.enable) { vim.startPlugins = [ "ccc" ]; vim.luaConfigRC.ccc = nvim.dag.entryAnywhere '' local ccc = require("ccc") ccc.setup { highlighter = { auto_enable = true, max_byte = 2 * 1024 * 1024, -- 2mb lsp = true, filetypes = colorPickerFts, }, pickers = { ccc.picker.hex, ccc.picker.css_rgb, ccc.picker.css_hsl, ccc.picker.ansi_escape { meaning1 = "bright", -- whether the 1 means bright or yellow }, }, alpha_show = "hide", -- needed when highlighter.lsp is set to true recognize = { output = true }, -- automatically recognize color format under cursor inputs = { ccc.input.hsl }, outputs = { ccc.output.css_hsl, ccc.output.css_rgb, ccc.output.hex, }, convert = { { ccc.picker.hex, ccc.output.css_hsl }, { ccc.picker.css_rgb, ccc.output.css_hsl }, { ccc.picker.css_hsl, ccc.output.hex }, }, mappings = { ["q"] = ccc.mapping.quit, ["L"] = ccc.mapping.increase10, ["H"] = ccc.mapping.decrease10, }, } ''; }; }