73 lines
1.7 KiB
Nix
73 lines
1.7 KiB
Nix
{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
|
|
]
|
|
))
|
|
];
|
|
};
|
|
}
|