fix helix wrapper

This commit is contained in:
ulic-youthlic 2025-03-07 00:25:18 +08:00
parent ade7b62617
commit 63a04604d1
Signed by: youthlic
GPG key ID: 63E86C3C14A0D721
3 changed files with 27 additions and 26 deletions

View file

@ -6,16 +6,7 @@
}@args: }@args:
let let
inherit (inputs.helix.packages."${pkgs.system}") helix; inherit (inputs.helix.packages."${pkgs.system}") helix;
# helix-core = helix-unwrapped.overrideAttrs { runtime = import ./runtime args;
# HELIX_DEFAULT_RUNTIME = "${grammarRuntime}";
# };
# helix-wrapped = (helix.override grammarConfig).passthru.wrapper helix-core;
# grammars = import ./grammars args;
# grammarOverlays = grammars.overlays;
# grammarRuntime = grammars.runtime;
# grammarConfig = {
# inherit grammarOverlays;
# };
runtimeInputs = ( runtimeInputs = (
with pkgs; with pkgs;
[ [
@ -53,8 +44,6 @@ let
); );
in in
pkgs.symlinkJoin { pkgs.symlinkJoin {
# pname = "helix-wrapped";
# version = helix.version;
name = "helix-wrapped"; name = "helix-wrapped";
paths = [ helix ]; paths = [ helix ];
inherit (helix) meta; inherit (helix) meta;
@ -63,6 +52,7 @@ pkgs.symlinkJoin {
]; ];
postBuild = '' postBuild = ''
wrapProgram $out/bin/hx \ wrapProgram $out/bin/hx \
--suffix PATH : ${lib.makeBinPath runtimeInputs} --suffix PATH : ${lib.makeBinPath runtimeInputs} \
--set HELIX_RUNTIME ${runtime}
''; '';
} }

View file

@ -65,30 +65,41 @@ let
inherit (grammar) name; inherit (grammar) name;
value = builtins.fetchTree { value = builtins.fetchTree {
type = "github"; type = "github";
inherit (grammar) owner repo rev; }; inherit (grammar) owner repo rev;
};
}) grammars }) grammars
); );
queries = lib.mapAttrsToList (name: value: '' queries = lib.mapAttrsToList (name: value: ''
mkdir -p $out/queries/${name} mkdir -p $out/${name}
cp ${value}/queries/* $out/queries/${name}/
ln -s ${value}/queries/* $out/${name}/
'') sources; '') sources;
runtime = pkgs.runCommand "helix-default-runtime" { } ''
mkdir -p $out
${builtins.concatStringsSep "\n" queries}
'';
builtGrammars = lib.listToAttrs ( builtGrammars = lib.listToAttrs (
map (grammar: { map (grammar: {
inherit (grammar) name; inherit (grammar) name;
value = buildGrammar grammar; value = buildGrammar grammar;
}) grammars }) grammars
); );
grammarLinks = lib.mapAttrsToList (
name: value: "ln -s ${value}/${name}.so $out/${name}.so"
) builtGrammars;
grammarDir = pkgs.runCommandNoCCLocal "helix-grammars" { } ''
mkdir -p $out
${builtins.concatStringsSep "\n" grammarLinks}
'';
queryDir = pkgs.runCommandNoCCLocal "helix-query" { } ''
mkdir -p $out
${builtins.concatStringsSep "\n" queries}
'';
grammarFiles = [ grammarFiles = [
./idris.nix ./idris.nix
]; ];
in in
{ pkgs.runCommandNoCCLocal "helix-runtime" { } ''
overlays = [ mkdir -p $out
(final: prev: lib.filterAttrs (n: v: !(builtins.hasAttr n prev)) builtGrammars)
]; ln -s ${grammarDir} $out/grammars
inherit runtime; ln -s ${queryDir} $out/queries
} ''