Use a different vscode user-data-dir for every project.

Treat workspace setting files as global for that user-data-dir with symlink.
Add updateLaunchCmd to update .vscode/launch.json.
This commit is contained in:
Moises Nessim
2020-05-22 15:27:32 -05:00
parent 3816b9d036
commit 673b122836
4 changed files with 47 additions and 14 deletions
@@ -11,6 +11,7 @@
# extensions to be copied into the project's extensions folder
, mutableExtensions ? []
, vscodeExtsFolderName ? ".vscode-exts"
, user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"''
}:
let
nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
@@ -39,9 +40,11 @@ let
in
writeShellScriptBin "code" ''
if ! [[ "$@" =~ "--list-extension" ]]; then
mkdir -p ${vscodeExtsFolderName}
mkdir -p "${vscodeExtsFolderName}"
${rmExtensions}
${cpExtensions}
fi
${vscode}/bin/code --extensions-dir ${vscodeExtsFolderName} "$@"
${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${
lib.optionalString (user-data-dir != "") ''--user-data-dir ${user-data-dir }''
} "$@"
''