about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorOren Rozen <countoren@gmail.com>2020-01-29 23:28:44 -0500
committerOren Rozen <countoren@gmail.com>2020-04-19 21:32:36 -0500
commit0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687 (patch)
tree8644a34cadb080ee6421668b29b1010fb32104b7 /pkgs/misc
parenta535e7a04ff11615f43a222ad496c6ffd39d176c (diff)
downloadnixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar.gz
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar.bz2
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar.lz
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar.xz
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.tar.zst
nixlib-0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687.zip
use updateSettings in vscodeEnv in order to create and/or update settings.json, keybindings.json
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnv.nix30
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnvTest.nix12
2 files changed, 38 insertions, 4 deletions
diff --git a/pkgs/misc/vscode-extensions/vscodeEnv.nix b/pkgs/misc/vscode-extensions/vscodeEnv.nix
index b2f717ccc3eb..2370f6d4da4a 100644
--- a/pkgs/misc/vscode-extensions/vscodeEnv.nix
+++ b/pkgs/misc/vscode-extensions/vscodeEnv.nix
@@ -4,11 +4,18 @@
 , writeShellScriptBin
 , extensionsFromVscodeMarketplace
 , vscodeDefault
+, jq
 }:
 ##User input
-{ vscode                ? vscodeDefault
-, nixExtensions         ? []
-, vscodeExtsFolderName  ? ".vscode-exts"
+{ vscode                           ? vscodeDefault
+, nixExtensions                    ? []
+, vscodeExtsFolderName             ? ".vscode-exts"
+# will add to the command updateSettings (which will run on executing vscode) settings to override in settings.json file
+, settings                         ? {}
+, createSettingsIfDoesNotExists    ? true
+# will add to the command updateKeybindings(which will run on executing vscode) keybindings to override in keybinding.json file
+, keybindings                      ? {}
+, createKeybindingsIfDoesNotExists ? true
 # if file exists will use it and import the extensions in it into this dervation else will use empty extensions list
 # this file will be created/updated by vscodeExts2nix when vscode exists
 , mutableExtensionsFile 
@@ -25,6 +32,19 @@ let
     inherit nixExtensions mutableExtensions vscodeExtsFolderName;
   };
 
+  updateSettings = import ./updateSettings.nix { inherit lib writeShellScriptBin jq; };
+
+  updateSettingsCmd = updateSettings {
+    inherit settings;
+    createIfDoesNotExists = createSettingsIfDoesNotExists;
+  };
+
+  updateKeybindingsCmd = updateSettings {
+    settings = keybindings;
+    createIfDoesNotExists = createKeybindingsIfDoesNotExists;
+    vscodeSettingsFile = .vscode/keybindings.json;
+  };
+
   vscodeExts2nix = import ./vscodeExts2nix.nix { 
     inherit lib writeShellScriptBin;
     vscodeDefault = vscodeWithConfiguration;
@@ -34,6 +54,8 @@ let
     extensions = mutableExtensions; 
   };
   code = writeShellScriptBin "code" ''
+    ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
+    ${updateKeybindingsCmd}/bin/vscodeNixUpdate-keybindings
     ${vscodeWithConfiguration}/bin/code --wait "$@" 
     echo 'running vscodeExts2nix to update ${mutableExtensionsFilePath}...'
     ${vscodeExts2nix}/bin/vscodeExts2nix > ${mutableExtensionsFilePath}
@@ -41,5 +63,5 @@ let
 in
 buildEnv {
   name = "vscodeEnv";
-  paths = [ code vscodeExts2nix ];
+  paths = [ code vscodeExts2nix updateSettingsCmd updateKeybindingsCmd ];
 }
diff --git a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
new file mode 100644
index 000000000000..d7e586cab6ec
--- /dev/null
+++ b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
@@ -0,0 +1,12 @@
+with import <nixpkgs>{};
+callPackage (import ./vscodeEnv.nix) { 
+  extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
+  vscodeDefault = vscode;
+} {
+  mutableExtensionsFile = ./extensions.nix;
+  settings = {
+    a = "fdsdf";
+    t = "test";
+  };
+}
+