{pkgs}: let latexDevExtension = with pkgs.vscode-extensions; [ james-yu.latex-workshop eamodio.gitlens jebbs.plantuml ]; extensionJsonFile = pkgs.writeTextFile { name = "vscode-exentsions-json"; destination = "/share/vscode/extension/extension.json"; text = pkgs.vscode-utils.toExtensionJson latexDevExtension; }; seededExtension = pkgs.buildEnv { name = "vscode-tex-seeded-extensions"; paths = latexDevExtension ++ [extensionJsonFile]; }; vscodeIsolated = pkgs.writeShellScriptBin "code" '' set -euo pipefail VSCODE_TEX_HOME="''${XDG_CACHE_HOME:-$HOME/.cache}/vscode-tex-shell" USER_DATA_DIR="$VSCODE_TEX_HOME/user-data" EXT_DIR="$VSCODE_TEX_HOME/extensions" mkdir -p "$USER_DATA_DIR" "$EXT_DIR" for ext in ${seededExtension}/share/vscode/extensions/*; do name="$(basename "$ext")" if [ ! -e "$EXT_DIR/$name" ]; then ln -s "$ext" "$EXT_DIR/$name" fi done exec ${pkgs.vscode}/bin/code \ --user-data-dir "$USER_DATA_DIR" \ --extensions-dir "$EXT_DIR" \ "$@" ''; in { default = pkgs.mkShell { packages = [ vscodeIsolated # pkgs.latexmk (pkgs.texliveBasic.withPackages ( ps: [ ps.beamer ps.preprint ps.tikz-ext ps.latexmk ps.microtype ps.mathtools ps.thmtools ps.enumitem ps.csquotes ps.cleveref ps.algorithm2e ps.ifoddpage ps.relsize ps.amsfonts ps.amsmath ps.geometry ps.hyperref ps.lm ps.xcolor ps.datetime2 ] )) ]; }; }