diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/package.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/package.nix index 3b349ed571e7..aa1931869d6b 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/package.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/treesit-grammars/package.nix @@ -11,14 +11,14 @@ let path = "${drv}/parser"; }; + grammarPackage = grammars: pkgs.linkFarm "emacs-treesit-grammars" (map grammarToAttrSet grammars); + # 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)); + with-grammars = fn: grammarPackage (fn pkgs.tree-sitter.builtGrammars); + + with-all-grammars = grammarPackage pkgs.tree-sitter.allGrammars; in { - inherit with-grammars; - - with-all-grammars = with-grammars (ps: lib.filter (p: !p.meta.broken) (lib.attrValues ps)); + inherit with-grammars with-all-grammars; } diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix index 4a41328452a5..06d66898f801 100644 --- a/pkgs/development/tools/parsing/tree-sitter/default.nix +++ b/pkgs/development/tools/parsing/tree-sitter/default.nix @@ -73,7 +73,7 @@ let # pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ]) # # or for all grammars: - # pkgs.tree-sitter.withPlugins (_: allGrammars) + # pkgs.tree-sitter.withPlugins (_: pkgs.tree-sitter.allGrammars) # which is equivalent to # pkgs.tree-sitter.withPlugins (p: builtins.attrValues p) withPlugins = @@ -98,7 +98,7 @@ let ) grammars ); - allGrammars = builtins.attrValues builtGrammars; + allGrammars = lib.filter (p: !(p.meta.broken or false)) (lib.attrValues builtGrammars); in rustPlatform.buildRustPackage (final: {