From f445bd1d4d10758ac16cf5e67131284fe273d90d Mon Sep 17 00:00:00 2001 From: Soliprem Date: Fri, 27 Sep 2024 17:43:45 +0200 Subject: [PATCH 1/4] haskell: default to isMaximal --- configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration.nix b/configuration.nix index 98b9999..173cdf0 100644 --- a/configuration.nix +++ b/configuration.nix @@ -63,6 +63,7 @@ isMaximal: { dart.enable = isMaximal; bash.enable = isMaximal; r.enable = isMaximal; + haskell.enable = isMaximal; tailwind.enable = isMaximal; typst.enable = isMaximal; clang.enable = isMaximal; From 415ed89340f91bda3807bd6b3e0c5e90b8506646 Mon Sep 17 00:00:00 2001 From: Soliprem Date: Fri, 27 Sep 2024 17:44:23 +0200 Subject: [PATCH 2/4] haskell: haskell support --- modules/plugins/languages/haskell.nix | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 modules/plugins/languages/haskell.nix diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix new file mode 100644 index 0000000..b2df406 --- /dev/null +++ b/modules/plugins/languages/haskell.nix @@ -0,0 +1,49 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.types) package; + inherit (lib.nvim.types) mkGrammarOption; + + cfg = config.vim.languages.haskell; +in { + options.vim.languages.haskell = { + enable = mkEnableOption "Haskell support"; + + treesitter = { + enable = mkEnableOption "Haskell treesitter" // {default = config.vim.languages.enableTreesitter;}; + package = mkGrammarOption pkgs "haskell"; + }; + + lsp = { + enable = mkEnableOption "Haskell LSP support (haskell-language-server)" // {default = config.vim.languages.enableLSP;}; + + package = mkOption { + description = "haskell_ls package"; + type = package; + default = pkgs.haskellPackages.haskell-language-server; + }; + }; + }; + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + + (mkIf cfg.lsp.enable { + vim.lsp.lspconfig.enable = true; + vim.lsp.lspconfig.sources.haskell-ls = '' + lspconfig.haskell_ls.setup { + capabilities = capabilities, + on_attach=default_on_attach, + cmd = "${cfg.lsp.package}/bin/haskell-language-server-wrapper", + } + ''; + }) + ]); +} From c360f29e253d2a208ae245c4f5b05355caaa070a Mon Sep 17 00:00:00 2001 From: Soliprem Date: Sun, 20 Oct 2024 12:48:30 +0200 Subject: [PATCH 3/4] haskell: for some reason now LSP works --- modules/plugins/languages/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 1ec2b68..c6b0aab 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -9,6 +9,7 @@ in { ./elixir.nix ./go.nix ./kotlin.nix + ./haskell.nix ./html.nix ./java.nix ./lua.nix From 6adb4cff21463d58e7a94fd3f8ff7812fd18f16c Mon Sep 17 00:00:00 2001 From: Soliprem Date: Sun, 20 Oct 2024 12:48:37 +0200 Subject: [PATCH 4/4] haskell: for some reason now LSP works --- modules/plugins/languages/haskell.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index b2df406..460e15f 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -23,9 +23,9 @@ in { enable = mkEnableOption "Haskell LSP support (haskell-language-server)" // {default = config.vim.languages.enableLSP;}; package = mkOption { - description = "haskell_ls package"; + description = "haskell-language-server package"; type = package; - default = pkgs.haskellPackages.haskell-language-server; + default = pkgs.haskell-language-server; }; }; }; @@ -37,11 +37,11 @@ in { (mkIf cfg.lsp.enable { vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.haskell-ls = '' - lspconfig.haskell_ls.setup { + vim.lsp.lspconfig.sources.hls = '' + lspconfig.hls.setup { capabilities = capabilities, - on_attach=default_on_attach, - cmd = "${cfg.lsp.package}/bin/haskell-language-server-wrapper", + on_attach = default_on_attach, + cmd = {"${cfg.lsp.package}/bin/haskell-language-server"}, } ''; })