From 5b55eb42f1b14fdab2a09669fa27d44f492eb7e4 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Tue, 22 Feb 2022 21:38:59 -0600 Subject: [PATCH] tree-sitter: add extraGrammars attribute --- pkgs/development/tools/parsing/tree-sitter/default.nix | 10 +++++----- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix index 484254a099c3..055279c4962f 100644 --- a/pkgs/development/tools/parsing/tree-sitter/default.nix +++ b/pkgs/development/tools/parsing/tree-sitter/default.nix @@ -20,6 +20,7 @@ , enableShared ? !stdenv.hostPlatform.isStatic , enableStatic ? stdenv.hostPlatform.isStatic , webUISupport ? false +, extraGrammars ? {} }: # TODO: move to carnix or https://github.com/kolloch/crate2nix @@ -51,19 +52,18 @@ let runCommand "grammars" { } ('' mkdir $out '' + (lib.concatStrings (lib.mapAttrsToList - (name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n") + (name: grammar: "ln -s ${if grammar ? src then grammar.src else fetchGrammar grammar} $out/${name}\n") (import ./grammars { inherit lib; })))); - builtGrammars = let change = name: grammar: callPackage ./grammar.nix { } { language = if grammar ? language then grammar.language else name; inherit version; - source = fetchGrammar grammar; + source = if grammar ? src then grammar.src else fetchGrammar grammar; location = if grammar ? location then grammar.location else null; }; - grammars' = (import ./grammars { inherit lib; }); + grammars' = import ./grammars { inherit lib; } // extraGrammars; grammars = grammars' // { tree-sitter-ocaml = grammars'.tree-sitter-ocaml // { location = "ocaml"; }; } // { tree-sitter-ocaml-interface = grammars'.tree-sitter-ocaml // { location = "interface"; }; } // @@ -71,7 +71,7 @@ let { tree-sitter-typescript = grammars'.tree-sitter-typescript // { location = "typescript"; }; } // { tree-sitter-tsx = grammars'.tree-sitter-typescript // { location = "tsx"; }; }; in - lib.mapAttrs change grammars; + lib.mapAttrs change (grammars); # Usage: # pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ]) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7302e057d36d..160e822735b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15867,7 +15867,7 @@ with pkgs; travis = callPackage ../development/tools/misc/travis { }; - tree-sitter = callPackage ../development/tools/parsing/tree-sitter { + tree-sitter = makeOverridable (callPackage ../development/tools/parsing/tree-sitter) { inherit (darwin.apple_sdk.frameworks) Security; };