about summary refs log tree commit diff
path: root/overlays
diff options
context:
space:
mode:
authorCullan Springstead <cullan@springstead.me>2023-02-05 10:14:45 -0600
committerCullan Springstead <cullan@springstead.me>2023-02-05 10:14:45 -0600
commit215394062b3fc38d131fdf78725c1704e110ae19 (patch)
treedd8bf01cb1eb54d1cdf7dd5ab6528e0fbe1ec3be /overlays
parent475c58aca32b60826f2e9ac75b78006d5cecf6b5 (diff)
downloadnixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar.gz
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar.bz2
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar.lz
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar.xz
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.tar.zst
nixlib-215394062b3fc38d131fdf78725c1704e110ae19.zip
allow tree-sitter grammars to be overridden
Diffstat (limited to 'overlays')
-rw-r--r--overlays/emacs.nix53
1 files changed, 27 insertions, 26 deletions
diff --git a/overlays/emacs.nix b/overlays/emacs.nix
index 06814f5d7a25..36a6335025b8 100644
--- a/overlays/emacs.nix
+++ b/overlays/emacs.nix
@@ -16,7 +16,7 @@ let
       super.emacs
       ([
 
-        (drv: drv.override ({ srcRepo = true; } // builtins.removeAttrs args [ "noTreeSitter" ]))
+        (drv: drv.override ({ srcRepo = true; } // builtins.removeAttrs args [ "noTreeSitter" "treeSitterPlugins" ]))
 
         (
           drv: drv.overrideAttrs (
@@ -89,28 +89,7 @@ let
                      /usr/bin/codesign -s - -f $out/lib/${lib drv}
                 ''
               else ''ln -s ${drv}/parser $out/lib/${lib drv}'';
-            plugins = with self.pkgs.tree-sitter-grammars; [
-              tree-sitter-bash
-              tree-sitter-c
-              tree-sitter-c-sharp
-              tree-sitter-cmake
-              tree-sitter-cpp
-              tree-sitter-css
-              tree-sitter-dockerfile
-              tree-sitter-go
-              tree-sitter-gomod
-              tree-sitter-html
-              tree-sitter-java
-              tree-sitter-javascript
-              tree-sitter-json
-              tree-sitter-python
-              tree-sitter-ruby
-              tree-sitter-rust
-              tree-sitter-toml
-              tree-sitter-tsx
-              tree-sitter-typescript
-              tree-sitter-yaml
-            ];
+            plugins = args.treeSitterPlugins;
             tree-sitter-grammars = super.runCommandCC "tree-sitter-grammars" {}
               (super.lib.concatStringsSep "\n" (["mkdir -p $out/lib"] ++ (map linkCmd plugins)));
           in {
@@ -126,9 +105,31 @@ let
         )
       )));
 
-  emacsGit = mkGitEmacs "emacs-git" ../repos/emacs/emacs-master.json { withSQLite3 = true; withWebP = true; };
-
-  emacsPgtk = mkGitEmacs "emacs-pgtk" ../repos/emacs/emacs-master.json { withSQLite3 = true; withWebP = true; withPgtk = true; };
+  defaultTreeSitterPlugins = with self.pkgs.tree-sitter-grammars; [
+    tree-sitter-bash
+    tree-sitter-c
+    tree-sitter-c-sharp
+    tree-sitter-cmake
+    tree-sitter-cpp
+    tree-sitter-css
+    tree-sitter-dockerfile
+    tree-sitter-go
+    tree-sitter-gomod
+    tree-sitter-java
+    tree-sitter-javascript
+    tree-sitter-json
+    tree-sitter-python
+    tree-sitter-ruby
+    tree-sitter-rust
+    tree-sitter-toml
+    tree-sitter-tsx
+    tree-sitter-typescript
+    tree-sitter-yaml
+  ];
+
+  emacsGit = super.lib.makeOverridable (mkGitEmacs "emacs-git" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; treeSitterPlugins = defaultTreeSitterPlugins; };
+
+  emacsPgtk = super.lib.makeOverridable (mkGitEmacs "emacs-pgtk" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; withPgtk = true; treeSitterPlugins = defaultTreeSitterPlugins; };
 
   emacsUnstable = (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json { noTreeSitter = true; });