diff --git a/pkgs/helix/default.nix b/pkgs/helix/default.nix index 260eb55..8571222 100644 --- a/pkgs/helix/default.nix +++ b/pkgs/helix/default.nix @@ -6,16 +6,7 @@ }@args: let inherit (inputs.helix.packages."${pkgs.system}") helix; - # helix-core = helix-unwrapped.overrideAttrs { - # 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; - # }; + runtime = import ./runtime args; runtimeInputs = ( with pkgs; [ @@ -53,8 +44,6 @@ let ); in pkgs.symlinkJoin { - # pname = "helix-wrapped"; - # version = helix.version; name = "helix-wrapped"; paths = [ helix ]; inherit (helix) meta; @@ -63,6 +52,7 @@ pkgs.symlinkJoin { ]; postBuild = '' wrapProgram $out/bin/hx \ - --suffix PATH : ${lib.makeBinPath runtimeInputs} + --suffix PATH : ${lib.makeBinPath runtimeInputs} \ + --set HELIX_RUNTIME ${runtime} ''; } diff --git a/pkgs/helix/grammars/default.nix b/pkgs/helix/runtime/default.nix similarity index 74% rename from pkgs/helix/grammars/default.nix rename to pkgs/helix/runtime/default.nix index 46ec04b..d158636 100644 --- a/pkgs/helix/grammars/default.nix +++ b/pkgs/helix/runtime/default.nix @@ -65,30 +65,41 @@ let inherit (grammar) name; value = builtins.fetchTree { type = "github"; - inherit (grammar) owner repo rev; }; + inherit (grammar) owner repo rev; + }; }) grammars ); queries = lib.mapAttrsToList (name: value: '' - mkdir -p $out/queries/${name} - cp ${value}/queries/* $out/queries/${name}/ + mkdir -p $out/${name} + + ln -s ${value}/queries/* $out/${name}/ '') sources; - runtime = pkgs.runCommand "helix-default-runtime" { } '' - mkdir -p $out - ${builtins.concatStringsSep "\n" queries} - ''; builtGrammars = lib.listToAttrs ( map (grammar: { inherit (grammar) name; value = buildGrammar grammar; }) 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 = [ ./idris.nix ]; in -{ - overlays = [ - (final: prev: lib.filterAttrs (n: v: !(builtins.hasAttr n prev)) builtGrammars) - ]; - inherit runtime; -} +pkgs.runCommandNoCCLocal "helix-runtime" { } '' + mkdir -p $out + + ln -s ${grammarDir} $out/grammars + ln -s ${queryDir} $out/queries +'' diff --git a/pkgs/helix/grammars/idris.nix b/pkgs/helix/runtime/idris.nix similarity index 100% rename from pkgs/helix/grammars/idris.nix rename to pkgs/helix/runtime/idris.nix