From 315d4ac175e877c98aac53175d422cedb65bea9f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 22 Dec 2025 22:04:54 +0100 Subject: [PATCH] tree-sitter-grammars: add `grammarsScope` package set This allows overriding grammars with overlays --- pkgs/development/tools/parsing/tree-sitter/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix index 330787c8efac..51fa026410af 100644 --- a/pkgs/development/tools/parsing/tree-sitter/default.nix +++ b/pkgs/development/tools/parsing/tree-sitter/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, + newScope, fetchFromGitHub, fetchFromGitLab, fetchFromSourcehut, @@ -68,6 +69,14 @@ let */ builtGrammars = lib.mapAttrs (_: lib.makeOverridable buildGrammar) grammars; + /** + # Extensible package set for tree-sitter grammars. + # Provides .override and .extend for customization. + # Note: Use builtGrammars (not this) when iterating over grammars, + # as this includes package set functions alongside derivations + */ + grammarsScope = lib.makeScope newScope (self: builtGrammars); + # Usage: # pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ]) # @@ -183,6 +192,7 @@ rustPlatform.buildRustPackage (finalAttrs: { grammars buildGrammar builtGrammars + grammarsScope withPlugins allGrammars ;