From 7baefc8aa587931827797db7fbd55a733179dc79 Mon Sep 17 00:00:00 2001 From: Jan Kremer <79042825+janurskremer@users.noreply.github.com> Date: Tue, 2 Apr 2024 13:24:07 +0200 Subject: [PATCH] plugins: Add ccc (new PR) (#1365) --- lib/maintainers.nix | 10 +++++ plugins/default.nix | 1 + plugins/utils/ccc.nix | 54 ++++++++++++++++++++++++ tests/test-sources/plugins/utils/ccc.nix | 20 +++++++++ 4 files changed, 85 insertions(+) create mode 100644 plugins/utils/ccc.nix create mode 100644 tests/test-sources/plugins/utils/ccc.nix diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 39ea867a..3c2b7271 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -32,4 +32,14 @@ {fingerprint = "0821 8B96 DC73 85E5 BB7C A535 D264 3BD2 13BC 0FA8";} ]; }; + JanKremer = { + email = "mail@jankremer.eu"; + matrix = "@jankremer:matrix.org"; + github = "janurskremer"; + githubId = 79042825; + name = "Jan Kremer"; + keys = [ + {fingerprint = "20AF 0A65 9F2B 93AD 9184 15D1 A7DA 689C B3B0 78EC";} + ]; + }; } diff --git a/plugins/default.nix b/plugins/default.nix index 766b77ee..9cf9d6c1 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -125,6 +125,7 @@ ./utils/bacon.nix ./utils/baleia.nix ./utils/better-escape.nix + ./utils/ccc.nix ./utils/clipboard-image.nix ./utils/comment.nix ./utils/commentary.nix diff --git a/plugins/utils/ccc.nix b/plugins/utils/ccc.nix new file mode 100644 index 00000000..b39474e0 --- /dev/null +++ b/plugins/utils/ccc.nix @@ -0,0 +1,54 @@ +{ + lib, + helpers, + config, + pkgs, + ... +}: +helpers.neovim-plugin.mkNeovimPlugin config { + name = "ccc"; + originalName = "ccc.nvim"; + defaultPackage = pkgs.vimPlugins.ccc-nvim; + + maintainers = [helpers.maintainers.JanKremer]; + + settingsOptions = { + default_color = helpers.defaultNullOpts.mkStr "#000000" '' + The default color used when a color cannot be picked. It must be HEX format. + ''; + + highlight_mode = helpers.defaultNullOpts.mkEnum ["fg" "bg" "foreground" "background"] "bg" '' + Option to highlight text foreground or background. It is used to + `output_line` and `highlighter`. + ''; + + lsp = helpers.defaultNullOpts.mkBool true '' + Whether to enable LSP support. The color information is updated in the + background and the result is used by `:CccPick` and highlighter. + ''; + + highlighter = { + auto_enable = helpers.defaultNullOpts.mkBool false '' + Whether to enable automatically on `BufEnter`. + ''; + + lsp = helpers.defaultNullOpts.mkBool true '' + If true, highlight using LSP. If a language server with the color + provider is not attached to a buffer, it falls back to highlight with + pickers. See also `:help ccc-option-lsp`. + ''; + }; + }; + + settingsExample = { + default_color = "#FFFFFF"; + highlight_mode = "fg"; + lsp = false; + highlighter = { + auto_enable = true; + lsp = false; + }; + }; + + extraConfig = cfg: {opts.termguicolors = lib.mkDefault true;}; +} diff --git a/tests/test-sources/plugins/utils/ccc.nix b/tests/test-sources/plugins/utils/ccc.nix new file mode 100644 index 00000000..4856cc5b --- /dev/null +++ b/tests/test-sources/plugins/utils/ccc.nix @@ -0,0 +1,20 @@ +{ + empty = { + plugins.ccc.enable = true; + }; + + example = { + plugins.ccc = { + enable = true; + settings = { + default_color = "#FFFFFF"; + highlight_mode = "fg"; + lsp = true; + highlighter = { + auto_enable = true; + lsp = true; + }; + }; + }; + }; +}