blob: d7d7f2eaee3972ce520905f3c025ab1ab33ee58a [file] [log] [blame]
Skyler Grey252927a2022-10-18 22:18:15 +01001{ pkgs
2, lib
Skyler Grey8fd63d02022-10-31 00:26:44 +00003, nixpkgs-minion
4, system
Skyler Grey252927a2022-10-18 22:18:15 +01005, ...
6}:
7let
Skyler Greyf8194602022-10-31 00:07:05 +00008 disabledGrammars = [
Skyler Greyf8f06532022-11-04 10:58:38 +00009 "sql"
Skyler Greyf8194602022-10-31 00:07:05 +000010 ];
Skyler Grey252927a2022-10-18 22:18:15 +010011in
12{
Skyler Greya7feb6e2022-08-26 06:51:55 +010013 programs.neovim = {
14 plugins = with pkgs.vimPlugins; [
15 (nvim-treesitter.withPlugins (plugins:
Skyler Greyf8194602022-10-31 00:07:05 +000016 (lib.pipe plugins [
Skyler Greyf8f06532022-11-04 10:58:38 +000017 (lib.filterAttrs (name: value: builtins.substring 0 12 name == "tree-sitter-"))
18 (lib.filterAttrs (name: value: !builtins.elem
19 (builtins.substring 12 (builtins.stringLength name) name)
20 disabledGrammars
21 ))
22 lib.traceVal
Skyler Greyf8194602022-10-31 00:07:05 +000023 builtins.attrValues
24 ])
Skyler Greya7feb6e2022-08-26 06:51:55 +010025 ++ (with pkgs.vimPlugins; [
26 nvim-ts-rainbow
Skyler Grey8fd63d02022-10-31 00:26:44 +000027 nixpkgs-minion.legacyPackages.${system}.tree-sitter-grammars.tree-sitter-astro
Skyler Greya7feb6e2022-08-26 06:51:55 +010028 ])))
29 nvim-treesitter-context
30 ];
31 extraConfig = ''
32 source ${./setup.lua}
33 '';
34 };
35}