Compare commits

..

2 commits

Author SHA1 Message Date
Artur Manuel
7a8ab4fcc1
Merge 291fb06eca into a0a57757a0 2024-12-18 15:07:23 +00:00
Artur Manuel
291fb06eca plugins/languages: add haskell support
Closes #426
2024-12-18 15:06:20 +00:00
2 changed files with 10 additions and 5 deletions

View file

@ -10,13 +10,15 @@
inherit (lib.strings) optionalString;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.lua) expToLua;
inherit (pkgs) haskellPackages;
cfg = config.vim.languages.haskell;
in {
options.vim.languages.haskell = {
enable = mkEnableOption "Haskell support";
treesitter = {
enable = mkEnableOption "Treesitter support for Haskell" // {default = config.vim.languages.enableTreesitter;};
package = mkGrammarOption pkgs "haskell";
@ -41,6 +43,7 @@ in {
};
};
};
config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable {
vim.treesitter = {
@ -48,11 +51,13 @@ in {
grammars = [cfg.treesitter.package];
};
})
(mkIf (cfg.dap.enable || cfg.lsp.enable) {
vim = {
startPlugins = ["haskell-tools-nvim"];
luaConfigRC.haskell-tools-nvim =
entryAnywhere
entryAfter
["lsp-setup"]
''
vim.g.haskell_tools = {
${optionalString cfg.lsp.enable ''

View file

@ -13,7 +13,7 @@
inherit (lib.types) bool package str listOf either enum;
inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.dag) entryAfter;
cfg = config.vim.languages.rust;
@ -102,7 +102,7 @@ in {
startPlugins = ["crates-nvim"];
lsp.null-ls.enable = mkIf cfg.crates.codeActions true;
autocomplete.nvim-cmp.sources = {crates = "[Crates]";};
pluginRC.rust-crates = entryAnywhere ''
pluginRC.rust-crates = entryAfter ["lsp-setup"] ''
require('crates').setup {
null_ls = {
enabled = ${boolToString cfg.crates.codeActions},
@ -127,7 +127,7 @@ in {
vim = {
startPlugins = ["rustaceanvim"];
luaConfigRC.rustaceanvim = entryAnywhere ''
luaConfigRC.rustaceanvim = entryAfter ["lsp-setup"] ''
vim.g.rustaceanvim = {
${optionalString cfg.lsp.enable ''
-- LSP