emacs.pkgs.treesit-grammars: init fake package

Adding this package gives Emacs access to tree-sitter grammars.
This commit is contained in:
Damien Cassou 2023-05-07 18:14:38 +02:00
parent caa013bd88
commit e764298465
No known key found for this signature in database
GPG Key ID: B68746238E59B548
2 changed files with 21 additions and 0 deletions

View File

@ -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 { };

View File

@ -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));
}