tree-sitter: 1.18.2 -> 0.19.3

Update the grammars and add `allGrammars` derivation.
`nix-build "<nixpkgs>" -A tree-sitter.allGrammars` will create a
derivation with symlinks to all the grammars
This commit is contained in:
José Luis Lafuente
2021-03-16 01:38:58 +01:00
committed by Matthieu Coudron
parent ef0299137e
commit fee2e23c00
32 changed files with 217 additions and 136 deletions
@@ -1,9 +1,21 @@
{ lib, stdenv
, fetchgit, fetchFromGitHub, fetchurl
, writeShellScript, runCommand, which, formats
, rustPlatform, jq, nix-prefetch-git, xe, curl, emscripten
{ lib
, stdenv
, fetchgit
, fetchFromGitHub
, fetchurl
, writeShellScript
, runCommand
, which
, formats
, rustPlatform
, jq
, nix-prefetch-git
, xe
, curl
, emscripten
, Security
, callPackage
, linkFarm
, enableShared ? !stdenv.hostPlatform.isStatic
, enableStatic ? stdenv.hostPlatform.isStatic
@@ -16,9 +28,9 @@ let
# 1) change all these hashes
# 2) nix-build -A tree-sitter.updater.update-all-grammars
# 3) run the ./result script that is output by that (it updates ./grammars)
version = "0.18.2";
sha256 = "1kh3bqn28nal3mmwszbih8hbq25vxy3zd45pzj904yf0ds5ql684";
cargoSha256 = "06jbn4ai5lrxzv51vfjzjs7kgxw4nh2vbafc93gma4k14gggyygc";
version = "0.19.3";
sha256 = "0zd1p9x32bwdc5cdqr0x8i9fpcykk1zczb8zdjawrrr92465d26y";
cargoSha256 = "0mlrbl85x1x2ynwrps94mxn95rjj1r7gb3vdivfaxqv1xvp25m41";
src = fetchFromGitHub {
owner = "tree-sitter";
@@ -32,35 +44,35 @@ let
inherit writeShellScript nix-prefetch-git curl jq xe src formats lib;
};
fetchGrammar = (v: fetchgit {inherit (v) url rev sha256 fetchSubmodules; });
fetchGrammar = (v: fetchgit { inherit (v) url rev sha256 fetchSubmodules; });
grammars =
runCommand "grammars" {} (''
mkdir $out
'' + (lib.concatStrings (lib.mapAttrsToList
(name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n")
(import ./grammars))));
runCommand "grammars" { } (''
mkdir $out
'' + (lib.concatStrings (lib.mapAttrsToList
(name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n")
(import ./grammars))));
builtGrammars = let
change = name: grammar:
callPackage ./grammar.nix {} {
language = name;
inherit version;
source = fetchGrammar grammar;
};
in
lib.mapAttrs change (removeAttrs (import ./grammars) [
# TODO these don't have parser.c in the same place as others.
# They might require more elaborate builds?
# /nix/…/src/parser.c: No such file or directory
"tree-sitter-typescript"
# /nix/…/src/parser.c: No such file or directory
"tree-sitter-ocaml"
# /nix/…/src/parser.c:1:10: fatal error: tree_sitter/parser.h: No such file or directory
"tree-sitter-razor"
]);
builtGrammars =
let
change = name: grammar:
callPackage ./grammar.nix { } {
language = name;
inherit version;
source = fetchGrammar grammar;
location = if grammar ? location then grammar.location else null;
};
grammars' = (import ./grammars);
grammars = grammars' //
{ tree-sitter-ocaml = grammars'.tree-sitter-ocaml // { location = "ocaml"; }; } //
{ tree-sitter-ocaml-interface = grammars'.tree-sitter-ocaml // { location = "interface"; }; } //
{ tree-sitter-typescript = grammars'.tree-sitter-typescript // { location = "typescript"; }; } //
{ tree-sitter-tsx = grammars'.tree-sitter-typescript // { location = "tsx"; }; };
in
lib.mapAttrs change grammars;
in rustPlatform.buildRustPackage {
in
rustPlatform.buildRustPackage {
pname = "tree-sitter";
inherit src version cargoSha256;
@@ -99,8 +111,7 @@ in rustPlatform.buildRustPackage {
updater = {
inherit update-all-grammars;
};
inherit grammars;
inherit builtGrammars;
inherit grammars builtGrammars;
tests = {
# make sure all grammars build