add source to nvfetch of tree-sitter lib

This commit is contained in:
ulic-youthlic 2025-03-11 23:49:16 +08:00
parent 922a964a7d
commit 7c38ed1723
Signed by: youthlic
GPG key ID: 63E86C3C14A0D721
7 changed files with 76 additions and 48 deletions

View file

@ -2,11 +2,12 @@
lib,
pkgs,
inputs,
callPackage,
...
}@args:
}:
let
inherit (inputs.helix.packages."${pkgs.system}") helix;
runtime = import ./runtime args;
runtime = callPackage ./runtime.nix { };
runtimeInputs = (
with pkgs;
[

View file

@ -1,16 +1,18 @@
{ lib, pkgs, ... }:
{
lib,
srcs,
stdenv,
runCommandNoCCLocal,
...
}:
let
inherit (pkgs) stdenv;
buildGrammar =
grammar:
let
source = sources."${grammar.name}";
in
stdenv.mkDerivation {
pname = "helix-tree-sitter-${grammar.name}";
version = grammar.rev;
src = source;
sourceRoot = "source";
version = grammar.version;
src = grammar.src;
# sourceRoot = "source";
dontConfigue = true;
@ -59,45 +61,32 @@ let
runHook postFixup
'';
};
grammars = map (file: import file) grammarFiles;
sources = lib.listToAttrs (
map (grammar: {
inherit (grammar) name;
value = builtins.fetchTree {
type = "github";
inherit (grammar) owner repo rev;
};
}) grammars
);
queries = lib.mapAttrsToList (name: value: ''
mkdir -p $out/${name}
grammars = lib.filterAttrs (key: _: lib.hasPrefix "tree-sitter-" key) srcs;
ln -s ${value}/queries/* $out/${name}/
'') sources;
builtGrammars = lib.listToAttrs (
map (grammar: {
inherit (grammar) name;
value = buildGrammar grammar;
}) grammars
);
queries = lib.mapAttrsToList (_: value: ''
mkdir -p $out/${value.name}
ln -s ${value.src}/queries/* $out/${value.name}/
'') grammars;
builtGrammars = builtins.mapAttrs (_: v: {
inherit (v) name;
value = buildGrammar v;
}) grammars;
grammarLinks = lib.mapAttrsToList (
name: value: "ln -s ${value}/${name}.so $out/${name}.so"
_: value: "ln -s ${value.value}/${value.name}.so $out/${value.name}.so"
) builtGrammars;
grammarDir = pkgs.runCommandNoCCLocal "helix-grammars" { } ''
grammarDir = runCommandNoCCLocal "helix-grammars" { } ''
mkdir -p $out
${builtins.concatStringsSep "\n" grammarLinks}
'';
queryDir = pkgs.runCommandNoCCLocal "helix-query" { } ''
queryDir = runCommandNoCCLocal "helix-query" { } ''
mkdir -p $out
${builtins.concatStringsSep "\n" queries}
'';
grammarFiles = [
./idris.nix
];
in
pkgs.runCommandNoCCLocal "helix-runtime" { } ''
runCommandNoCCLocal "helix-runtime" { } ''
mkdir -p $out
ln -s ${grammarDir} $out/grammars

View file

@ -1,6 +0,0 @@
{
name = "idris";
owner = "kayhide";
repo = "tree-sitter-idris";
rev = "c56a25cf57c68ff929356db25505c1cc4c7820f6";
}