Функция отмены может изменять только входы функции.Невозможно изменить произвольные подвыражения.
Предполагая, что вы просто хотите добавить расширение в свою конфигурацию, мне кажется, что вам не нужно фактически изменять все выражение, которое вызывает 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, раскомментируйте часть NixOS, и вы получитемодуль, который вы можете добавить в свой NixOS imports
.
Отказ от ответственности: это не совсем мои настройки, я просто проверяю это.По крайней мере, часть Nix, кажется, работает.