c'est le bordel un peu
This commit is contained in:
72
devshells.nix
Normal file
72
devshells.nix
Normal file
@@ -0,0 +1,72 @@
|
||||
{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
|
||||
]
|
||||
))
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user