From 1ca6293c8fb1dbe13c48fe518440c288256cd562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Favier?= Date: Mon, 7 Feb 2022 18:40:59 +0100 Subject: [PATCH] vscode: fix keybindings existence check (#2707) ... and flip immutableExtensionsDir to mutableExtensionsDir --- modules/programs/vscode.nix | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/programs/vscode.nix b/modules/programs/vscode.nix index 8819aff21..26bcce463 100644 --- a/modules/programs/vscode.nix +++ b/modules/programs/vscode.nix @@ -34,6 +34,14 @@ let extensionPath = ".${extensionDir}/extensions"; in { + imports = [ + (mkChangedOptionModule [ "programs" "vscode" "immutableExtensionsDir" ] [ + "programs" + "vscode" + "mutableExtensionsDir" + ] (config: !config.programs.vscode.immutableExtensionsDir)) + ]; + options = { programs.vscode = { enable = mkEnableOption "Visual Studio Code"; @@ -118,10 +126,10 @@ in { ''; }; - immutableExtensionsDir = mkOption { + mutableExtensionsDir = mkOption { type = types.bool; - default = false; - example = true; + default = true; + example = false; description = '' Whether extensions can be installed or updated manually or by Visual Studio Code. @@ -138,7 +146,7 @@ in { "${configFilePath}".source = jsonFormat.generate "vscode-user-settings" cfg.userSettings; }) - (mkIf (cfg.keybindings != { }) + (mkIf (cfg.keybindings != [ ]) (let dropNullFields = filterAttrs (_: v: v != null); in { "${keybindingsFilePath}".source = @@ -158,10 +166,11 @@ in { "${extensionPath}/${k}".source = "${extensionsFolder}/${k}"; }; extensions = builtins.attrNames (builtins.readDir extensionsFolder); - in if cfg.immutableExtensionsDir then { + in if cfg.mutableExtensionsDir then + mkMerge (map addSymlinkToExtension extensions) + else { "${extensionPath}".source = extensionsFolder; - } else - mkMerge (map addSymlinkToExtension extensions))) + })) ]; }; }