是否可以覆盖现有包的构建脚本,或者在这种情况下vscode-with-extensions。我知道如何覆盖一个选项,在这个包中是vscodeExtensions
。
This似乎显示了一种方法,但我似乎没有看到在文件中覆盖runCommand
的位置。
答案 0 :(得分:2)
覆盖功能只能更改功能的输入。无法修改任意子表达式。
假设您只想在配置中添加扩展,我觉得您不需要实际修改调用runCommand
的整个表达式。
以下是覆盖vscodeExtensions
参数的方法:
let
overlay = self: super: {
vscode-with-extensions = super.vscode-with-extensions.override {
vscodeExtensions =
super.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "vscode-hie-server";
publisher = "alanz";
version = "0.0.19";
sha256 = "0x0cs7c5q90p1ffig2wb5v21z3yj3p2chgpvbnlm4gfsnw7qpfzr";
}
] ++ with super.vscode-extensions; [
bbenoist.Nix
];
};
};
in
# NixOS:
# { nixpkgs.overlays = [ overlay ]; }
#
# or nix-build:
(import <nixpkgs> {
overlays = [ overlay ];
}).vscode-with-extensions
如果您希望将此片段作为NixOS配置,请注释nix-build部分,取消注释NixOS部分,并且您有一个可以添加到NixOS imports
的模块。
免责声明:这不是我的设置,我只是检查出来。至少尼克斯部分似乎有效。