From 1108c539ae1e94fbe5d23c06df58de43b7e9d0fd Mon Sep 17 00:00:00 2001 From: Marien Zwart Date: Sat, 20 Dec 2025 23:49:38 +1100 Subject: [PATCH 1/2] tree-sitter.allGrammars: exclude broken grammars Commit 9bfc2e203bf0b72c5c52f70c1261c36b86d73eb1 marked the tree-sitter-razor grammar as broken. That breaks building packages using tree-sitter.allGrammars (like diffsitter) as that now includes a broken package. Excluding broken grammars from allGrammars seems more useful than forcing its users to work around this. --- pkgs/development/tools/parsing/tree-sitter/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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: { From d5501b856725e245cfc410b263e2154a315f8c4a Mon Sep 17 00:00:00 2001 From: Marien Zwart Date: Sun, 21 Dec 2025 16:17:36 +1100 Subject: [PATCH 2/2] emacs.pkgs.treesit-grammars.with-all-grammars: simplify Use `tree-sitter.allGrammars`, instead of re-implementing its broken package filtering. --- .../manual-packages/treesit-grammars/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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; }