summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJonathan Ringer <jonringer117@gmail.com>2020-11-24 11:03:58 -0800
committerJonathan Ringer <jonringer@users.noreply.github.com>2020-11-25 13:06:06 -0800
commitbd11afec4ff257b076c3c54c2a99c76910bd51fb (patch)
tree565eb8a26b772892dfd79b49e9fb486be6adcf37 /pkgs
parent83b309f657423e80714cf165c19ab84a6cd4b058 (diff)
downloadnixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar.gz
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar.bz2
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar.lz
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar.xz
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.tar.zst
nixpkgs-bd11afec4ff257b076c3c54c2a99c76910bd51fb.zip
vscode-extensions: fix aliases
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/misc/vscode-extensions/default.nix22
1 files changed, 15 insertions, 7 deletions
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 0228ee9a1e9..bc00f82f19b 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -10,7 +10,7 @@ let
   # So an extension's attribute name should be of the form:
   # "${mktplcRef.publisher}.${mktplcRef.name}".
   #
-  self = stdenv.lib.mapAttrs (_n: stdenv.lib.recurseIntoAttrs)
+  baseExtensions = self: stdenv.lib.mapAttrs (_n: stdenv.lib.recurseIntoAttrs)
     {
 
       alanz.vscode-hie-server = buildVscodeMarketplaceExtension {
@@ -245,11 +245,19 @@ let
       llvm-org.lldb-vscode = llvmPackages_8.lldb;
 
       WakaTime.vscode-wakatime = callPackage ./wakatime {};
-    } // lib.optionalAttrs (config.allowAliases or true) (
-    with self; {
+    };
+
+    aliases = self: super: {
       # aliases
-      ms-vscode.Go = golang.Go;
-    }
-  );
+      ms-vscode = lib.recursiveUpdate super.ms-vscode { inherit (super.golang) Go; };
+    };
+
+    # TODO: add overrides overlay, so that we can have a generated.nix
+    # then apply extension specific modifcations to packages.
+
+    # overlays will be applied left to right, overrides should come after aliases.
+    overlays = lib.optionals (config.allowAliases or true) [ aliases ];
+
+    toFix = lib.foldl' (lib.flip lib.extends) baseExtensions overlays;
 in
-self
+  lib.fix toFix