|
|
|
@ -9,13 +9,13 @@ |
|
|
|
|
, melpaStablePackages |
|
|
|
|
, runCommand |
|
|
|
|
, tree-sitter-grammars |
|
|
|
|
, plugins ? map (g: tree-sitter-grammars.${g}) (lib.importJSON ./default-grammars.json) |
|
|
|
|
, final |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
inherit (melpaStablePackages) tree-sitter-langs; |
|
|
|
|
|
|
|
|
|
grammars = map (g: tree-sitter-grammars.${g}) (lib.importJSON ./default-grammars.json); |
|
|
|
|
|
|
|
|
|
libSuffix = if stdenv.isDarwin then "dylib" else "so"; |
|
|
|
|
soName = g: lib.removeSuffix "-grammar" (lib.removePrefix "tree-sitter-" g.pname) + "." + libSuffix; |
|
|
|
|
|
|
|
|
@ -26,7 +26,7 @@ let |
|
|
|
|
install -d $out/langs/bin |
|
|
|
|
echo -n $version > $out/langs/bin/BUNDLE-VERSION |
|
|
|
|
'' + lib.concatStringsSep "\n" (map ( |
|
|
|
|
g: "ln -s ${g}/parser $out/langs/bin/${soName g}") grammars |
|
|
|
|
g: "ln -s ${g}/parser $out/langs/bin/${soName g}") plugins |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
in |
|
|
|
@ -35,4 +35,10 @@ melpaStablePackages.tree-sitter-langs.overrideAttrs(old: { |
|
|
|
|
substituteInPlace ./tree-sitter-langs-build.el \ |
|
|
|
|
--replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir" "tree-sitter-langs-grammar-dir \"${grammarDir}/langs\"" |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
passthru = old.passthru or {} // { |
|
|
|
|
inherit plugins; |
|
|
|
|
withPlugins = fn: final.tree-sitter-langs.override { plugins = fn tree-sitter-grammars; }; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|