From 395836480995d418b96df527ebded1bc4b3134f0 Mon Sep 17 00:00:00 2001 From: Gustavo Araiza <57430880+garaiza-93@users.noreply.github.com> Date: Fri, 26 Jan 2024 11:31:34 -0600 Subject: [PATCH] plugins/haskell-scope-highlighting: init + test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add warning for Treesitter dependency Co-authored-by: GaƩtan Lepage <33058747+GaetanLepage@users.noreply.github.com> add test for highlights, add package tweak warning message enable treesitter in tests suggested change --- plugins/default.nix | 5 ++-- .../languages/haskell-scope-highlighting.nix | 24 +++++++++++++++++++ .../languages/haskell-scope-highlighting.nix | 24 +++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 plugins/languages/haskell-scope-highlighting.nix create mode 100644 tests/test-sources/plugins/languages/haskell-scope-highlighting.nix diff --git a/plugins/default.nix b/plugins/default.nix index 6ae13fca..6af2d661 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -46,6 +46,7 @@ ./languages/clangd-extensions.nix ./languages/debugprint.nix + ./languages/haskell-scope-highlighting.nix ./languages/julia/julia-cell.nix ./languages/lean.nix ./languages/ledger.nix @@ -61,15 +62,15 @@ ./languages/tagbar.nix ./languages/treesitter/hmts.nix ./languages/treesitter/rainbow-delimiters.nix - ./languages/treesitter/treesitter.nix ./languages/treesitter/treesitter-context.nix ./languages/treesitter/treesitter-playground.nix ./languages/treesitter/treesitter-refactor.nix ./languages/treesitter/treesitter-textobjects.nix + ./languages/treesitter/treesitter.nix ./languages/treesitter/ts-autotag.nix ./languages/treesitter/ts-context-commentstring.nix - ./languages/typst/typst-vim.nix ./languages/typescript-tools.nix + ./languages/typst/typst-vim.nix ./languages/vim-slime.nix ./languages/vimtex.nix ./languages/zig.nix diff --git a/plugins/languages/haskell-scope-highlighting.nix b/plugins/languages/haskell-scope-highlighting.nix new file mode 100644 index 00000000..ca9ec9d1 --- /dev/null +++ b/plugins/languages/haskell-scope-highlighting.nix @@ -0,0 +1,24 @@ +{ + lib, + pkgs, + helpers, + config, + ... +}: +with lib; let + cfg = config.plugins.haskell-scope-highlighting; +in { + options.plugins.haskell-scope-highlighting = { + enable = mkEnableOption "haskell-scope-highlighting"; + + package = helpers.mkPackageOption "haskell-scope-highlighting" pkgs.vimPlugins.haskell-scope-highlighting-nvim; + }; + + config = mkIf cfg.enable { + warnings = optional (!config.plugins.treesitter.enable) '' + Nixvim (plugins.haskell-scope-highlighting): haskell-scope-highlighting needs treesitter to function as intended. Please, enable it by setting `plugins.treesitter.enable` to `true`. + ''; + + extraPlugins = [cfg.package]; + }; +} diff --git a/tests/test-sources/plugins/languages/haskell-scope-highlighting.nix b/tests/test-sources/plugins/languages/haskell-scope-highlighting.nix new file mode 100644 index 00000000..ce0de516 --- /dev/null +++ b/tests/test-sources/plugins/languages/haskell-scope-highlighting.nix @@ -0,0 +1,24 @@ +{ + empty = { + plugins.haskell-scope-highlighting.enable = true; + plugins.treesitter.enable = true; + }; + + testHaskellHighlights = { + plugins.haskell-scope-highlighting.enable = true; + plugins.treesitter.enable = true; + highlight = { + HaskellCurrentScope.bg = "black"; + HaskellParentScope1.bg = "black"; + HaskellParentScope2.bg = "black"; + HaskellParentScope3.bg = "black"; + HaskellVariableDeclarationWithinScope.bg = "black"; + HaskellVariableDeclaredWithinFile.bg = "black"; + HaskellVariableDeclaredWithinParent1.bg = "black"; + HaskellVariableDeclaredWithinParent2.bg = "black"; + HaskellVariableDeclaredWithinParent3.bg = "black"; + HaskellVariableDeclaredWithinScope.bg = "black"; + HaskellVariableNotDeclaredWithinFile.bg = "black"; + }; + }; +}