summary refs log tree commit diff
path: root/pkgs/misc/vim-plugins/overrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/vim-plugins/overrides.nix')
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 7e12d083c32f9..3e352977d56ef 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -50,6 +50,9 @@
 , CoreFoundation
 , CoreServices
 
+# nvim-treesitter dependencies
+, tree-sitter
+
   # sved dependencies
 , glib
 , gobject-introspection
@@ -364,6 +367,24 @@ self: super: {
     dependencies = with super; [ popfix ];
   });
 
+  # Usage:
+  # pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ])
+  # or for all grammars:
+  # pkgs.vimPlugins.nvim-treesitter.withPlugins (_: tree-sitter.allGrammars)
+  nvim-treesitter = super.nvim-treesitter.overrideAttrs (old: {
+    passthru.withPlugins =
+      grammarFn: self.nvim-treesitter.overrideAttrs (_: {
+        postPatch =
+          let
+            grammars = tree-sitter.withPlugins grammarFn;
+          in
+          ''
+            rm -r parser
+            ln -s ${grammars} parser
+          '';
+      });
+  });
+
   onehalf = super.onehalf.overrideAttrs (old: {
     configurePhase = "cd vim";
   });