diff --git a/extra.nix b/extra.nix index 64ac3f1..ed9bd80 100644 --- a/extra.nix +++ b/extra.nix @@ -152,7 +152,7 @@ inputs: let }; vim.utility = { - colorizer.enable = true; + ccc.enable = true; vim-wakatime.enable = true; icon-picker.enable = true; diffview-nvim.enable = true; diff --git a/flake.lock b/flake.lock index ae9e2f1..6ab3a98 100644 --- a/flake.lock +++ b/flake.lock @@ -48,6 +48,22 @@ "type": "github" } }, + "ccc": { + "flake": false, + "locked": { + "lastModified": 1685810171, + "narHash": "sha256-0/xRK6LTa7BZx2szwmBfu3fmh+CKhFbr/MQKCl3KTYc=", + "owner": "uga-rosa", + "repo": "ccc.nvim", + "rev": "72461f8f7496863a54b7ae1681550c22c35080a8", + "type": "github" + }, + "original": { + "owner": "uga-rosa", + "repo": "ccc.nvim", + "type": "github" + } + }, "cellular-automaton": { "flake": false, "locked": { @@ -192,22 +208,6 @@ "type": "github" } }, - "colorizer": { - "flake": false, - "locked": { - "lastModified": 1684248331, - "narHash": "sha256-gZ1ZQsf+EkabFnDS48OFd1EfJmUeN504qeUH0jsCHdM=", - "owner": "uga-rosa", - "repo": "ccc.nvim", - "rev": "78aed26e18a087501be0475443b5a623adbf6290", - "type": "github" - }, - "original": { - "owner": "uga-rosa", - "repo": "ccc.nvim", - "type": "github" - } - }, "comment-nvim": { "flake": false, "locked": { @@ -1277,6 +1277,7 @@ "alpha-nvim": "alpha-nvim", "bufdelete-nvim": "bufdelete-nvim", "catppuccin": "catppuccin", + "ccc": "ccc", "cellular-automaton": "cellular-automaton", "cheatsheet-nvim": "cheatsheet-nvim", "cinnamon-nvim": "cinnamon-nvim", @@ -1286,7 +1287,6 @@ "cmp-treesitter": "cmp-treesitter", "cmp-vsnip": "cmp-vsnip", "codewindow-nvim": "codewindow-nvim", - "colorizer": "colorizer", "comment-nvim": "comment-nvim", "copilot-lua": "copilot-lua", "crates-nvim": "crates-nvim", diff --git a/flake.nix b/flake.nix index a47d1a9..a61adba 100644 --- a/flake.nix +++ b/flake.nix @@ -373,7 +373,7 @@ }; # Utilities - colorizer = { + ccc = { url = "github:uga-rosa/ccc.nvim"; flake = false; }; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index 0d31aab..d5a0524 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -50,7 +50,7 @@ with lib; let "nvim-notify" "cinnamon-nvim" "cheatsheet-nvim" - "colorizer" + "ccc" "cellular-automaton" "presence-nvim" "icon-picker-nvim" diff --git a/modules/utility/ccc/ccc.nix b/modules/utility/ccc/ccc.nix new file mode 100644 index 0000000..f7366bd --- /dev/null +++ b/modules/utility/ccc/ccc.nix @@ -0,0 +1,13 @@ +{lib, ...}: +with lib; +with builtins; { + options.vim.utility.ccc = { + enable = mkEnableOption "Enable ccc color picker for neovim"; + + mappings = { + quit = mkMappingOption "Cancel and close the UI without replace or insert" ""; + increase10 = mkMappingOption "Increase the value times delta of the slider" ""; + decrease10 = mkMappingOption "Decrease the value times delta of the slider" ""; + }; + }; +} diff --git a/modules/utility/ccc/config.nix b/modules/utility/ccc/config.nix new file mode 100644 index 0000000..4ec2f16 --- /dev/null +++ b/modules/utility/ccc/config.nix @@ -0,0 +1,58 @@ +{ + 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.maps.normal = mkMerge [ + (mkSetLuaBinding mappings.quit "require('ccc').mapping.quit") + (mkSetLuaBinding mappings.increase10 "require('ccc').mapping.increase10") + (mkSetLuaBinding mappings.decrease10 "require('ccc').mapping.decrease10") + ]; + + 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 }, + }, + } + ''; + }; +} diff --git a/modules/utility/colorizer/default.nix b/modules/utility/ccc/default.nix similarity index 68% rename from modules/utility/colorizer/default.nix rename to modules/utility/ccc/default.nix index 3b5b491..65e13e9 100644 --- a/modules/utility/colorizer/default.nix +++ b/modules/utility/ccc/default.nix @@ -1,6 +1,6 @@ _: { imports = [ - ./colorizer.nix + ./ccc.nix ./config.nix ]; } diff --git a/modules/utility/colorizer/colorizer.nix b/modules/utility/colorizer/colorizer.nix deleted file mode 100644 index 565f3f6..0000000 --- a/modules/utility/colorizer/colorizer.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; -with builtins; { - options.vim.utility.colorizer = { - enable = mkEnableOption "Enable ccc color picker for neovim"; - }; -} diff --git a/modules/utility/colorizer/config.nix b/modules/utility/colorizer/config.nix deleted file mode 100644 index 93c72dc..0000000 --- a/modules/utility/colorizer/config.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; -with builtins; let - cfg = config.vim.utility.colorizer; -in { - config = mkIf (cfg.enable) { - vim.startPlugins = [ - "colorizer" - ]; - }; -} diff --git a/modules/utility/default.nix b/modules/utility/default.nix index 96589dd..ca4730c 100644 --- a/modules/utility/default.nix +++ b/modules/utility/default.nix @@ -4,7 +4,7 @@ _: { ./gestures ./motion ./telescope - ./colorizer + ./ccc ./icon-picker ./telescope ./diffview