From 8f00594b25d994f5a7e240d5fd8260422eb59a88 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 1 Jun 2023 10:39:33 +0200 Subject: [PATCH] plugins/ts-context-commentstring: init + test --- plugins/default.nix | 1 + .../treesitter/ts-context-commentstring.nix | 37 +++++++++++++++++++ .../treesitter/ts-context-commentstring.nix | 10 +++++ 3 files changed, 48 insertions(+) create mode 100644 plugins/languages/treesitter/ts-context-commentstring.nix create mode 100644 tests/test-sources/plugins/languages/treesitter/ts-context-commentstring.nix diff --git a/plugins/default.nix b/plugins/default.nix index 03a84b03..d782b026 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -44,6 +44,7 @@ ./languages/treesitter/treesitter-rainbow.nix ./languages/treesitter/treesitter-refactor.nix ./languages/treesitter/ts-autotag.nix + ./languages/treesitter/ts-context-commentstring.nix ./languages/typst/typst-vim.nix ./languages/vim-slime.nix ./languages/vimtex.nix diff --git a/plugins/languages/treesitter/ts-context-commentstring.nix b/plugins/languages/treesitter/ts-context-commentstring.nix new file mode 100644 index 00000000..3831f3f3 --- /dev/null +++ b/plugins/languages/treesitter/ts-context-commentstring.nix @@ -0,0 +1,37 @@ +{ + pkgs, + lib, + config, + ... +}: +with lib; let + helpers = import ../../helpers.nix {inherit lib;}; +in { + options.plugins.ts-context-commentstring = + helpers.extraOptionsOptions + // { + enable = mkEnableOption "nvim-ts-context-commentstring"; + + package = + helpers.mkPackageOption + "ts-context-commentstring" + pkgs.vimPlugins.nvim-ts-context-commentstring; + }; + + config = let + cfg = config.plugins.ts-context-commentstring; + in + mkIf cfg.enable { + warnings = mkIf (!config.plugins.treesitter.enable) [ + "Nixvim: ts-context-commentstring needs treesitter to function as intended" + ]; + + extraPlugins = [cfg.package]; + + plugins.treesitter.moduleConfig.context_commentstring = + { + enable = true; + } + // cfg.extraOptions; + }; +} diff --git a/tests/test-sources/plugins/languages/treesitter/ts-context-commentstring.nix b/tests/test-sources/plugins/languages/treesitter/ts-context-commentstring.nix new file mode 100644 index 00000000..9e3c74a4 --- /dev/null +++ b/tests/test-sources/plugins/languages/treesitter/ts-context-commentstring.nix @@ -0,0 +1,10 @@ +{ + empty = { + plugins = { + treesitter.enable = true; + ts-context-commentstring.enable = true; + }; + }; + + # This plugin has no option +}