emacs.pkgs.treesit-grammars: refactor

- Do not pass tree-sitter since it refers to the Emacs packages and it's
  not needed

- Use stdenv.hostPlatform since it's not a compiler.
This commit is contained in:
Mario Rodas 2023-06-03 04:20:00 +00:00
parent 877e12b312
commit 8f0515dbf7

View File

@ -1,19 +1,20 @@
{ pkgs, lib, tree-sitter, ... }:
{ pkgs, lib }:
let
libExt = pkgs.stdenv.targetPlatform.extensions.sharedLibrary;
libExt = pkgs.stdenv.hostPlatform.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);
{
name = "lib/lib${lib.strings.removeSuffix "-grammar" (lib.strings.getName drv)}${libExt}";
path = "${drv}/parser";
};
# Use this one like this:
# treesit-grammars.with-grammars (grammars: with grammars; [tree-sitter-bash])
# Usage:
# treesit-grammars.with-grammars (p: [ p.tree-sitter-bash p.tree-sitter-c ... ])
with-grammars = fn: pkgs.linkFarm "emacs-treesit-grammars"
(map grammarToAttrSet (fn pkgs.tree-sitter.builtGrammars));
in
{
inherit with-grammars;
with-all-grammars = with-grammars builtins.attrValues;
}