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"; + }; + }; +}