diff options
author | Oren Rozen <countoren@gmail.com> | 2020-01-29 23:28:44 -0500 |
---|---|---|
committer | Oren Rozen <countoren@gmail.com> | 2020-04-19 21:32:36 -0500 |
commit | 0e4ac8bf834ca04b43481e3bbd34c4c8f4edc687 (patch) | |
tree | 8644a34cadb080ee6421668b29b1010fb32104b7 /pkgs/misc | |
parent | a535e7a04ff11615f43a222ad496c6ffd39d176c (diff) | |
download | nixlib-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.nix | 30 | ||||
-rw-r--r-- | pkgs/misc/vscode-extensions/vscodeEnvTest.nix | 12 |
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"; + }; +} + |