From e764298465fec2fd3e07f6794413622ec494d5d7 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Sun, 7 May 2023 18:14:38 +0200 Subject: [PATCH] emacs.pkgs.treesit-grammars: init fake package Adding this package gives Emacs access to tree-sitter grammars. --- .../emacs/elisp-packages/manual-packages.nix | 2 ++ .../treesit-grammars/default.nix | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/default.nix diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 944332e5bc53..6f3e3ae9dcc8 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -75,6 +75,8 @@ in tree-sitter-langs = callPackage ./manual-packages/tree-sitter-langs { final = self; }; + treesit-grammars = callPackage ./manual-packages/treesit-grammars { }; + tsc = callPackage ./manual-packages/tsc { }; urweb-mode = callPackage ./manual-packages/urweb-mode { }; diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/default.nix new file mode 100644 index 000000000000..8b2c723f2293 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/default.nix @@ -0,0 +1,19 @@ +{ pkgs, lib, tree-sitter, ... }: + +let + libExt = pkgs.stdenv.targetPlatform.extensions.sharedLibrary; + grammarToAttrSet = drv: + { + name = "lib/lib${lib.strings.removeSuffix "-grammar" (lib.strings.getName drv)}${libExt}"; + path = "${drv}/parser"; + }; +in +{ + with-all-grammars = pkgs.linkFarm "emacs-treesit-grammars" + (map grammarToAttrSet pkgs.tree-sitter.allGrammars); + + # Use this one like this: + # treesit-grammars.with-grammars (grammars: with grammars; [tree-sitter-bash]) + with-grammars = fn: pkgs.linkFarm "emacs-treesit-grammars" + (map grammarToAttrSet (fn pkgs.tree-sitter.builtGrammars)); +}