mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 07:28:12 +09:00
vscode
This commit is contained in:
+60
-12
@@ -1,20 +1,68 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
vsc = pkgs.vscode-extensions;
|
||||||
|
inherit (lib) recursiveUpdate;
|
||||||
|
|
||||||
|
layers = rec {
|
||||||
|
common = {
|
||||||
|
extensions = with vsc; [
|
||||||
|
dracula-theme.theme-dracula
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
"workbench.colorTheme" = "Dracula";
|
||||||
|
"window.autoDetectColorScheme" = false;
|
||||||
|
"editor.formatOnSave" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
web = {
|
||||||
|
extensions = with vsc; [
|
||||||
|
dbaeumer.vscode-eslint
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
extensions = with vsc; [
|
||||||
|
bbenoist.Nix
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
"nix.enableLanguageServer" = true;
|
||||||
|
"nix.serverPath" = "nil";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
combine = (ls:
|
||||||
|
builtins.foldl' (acc: l: {
|
||||||
|
extensions = acc.extensions ++ (l.extensions or []);
|
||||||
|
userSettings = recursiveUpdate acc.userSettings (l.userSettings or {});
|
||||||
|
}) { extensions = []; userSettings = {}; } ls
|
||||||
|
);
|
||||||
|
|
||||||
|
# mkProfile [layers...] { extensions = [...]; userSettings = { ... }; }
|
||||||
|
mkProfile = layersList: extras:
|
||||||
|
let base = combine layersList;
|
||||||
|
in {
|
||||||
|
extensions = base.extensions ++ (extras.extensions or []);
|
||||||
|
userSettings = recursiveUpdate base.userSettings (extras.userSettings or {});
|
||||||
|
};
|
||||||
|
|
||||||
|
in {
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles = {
|
|
||||||
default = {
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
|
||||||
esbenp.prettier-vscode
|
|
||||||
dracula-theme.theme-dracula
|
|
||||||
];
|
|
||||||
|
|
||||||
userSettings = {
|
profiles = {
|
||||||
"workbench.colorTheme" = "Dracula";
|
default = mkProfile [ layers.common ] { };
|
||||||
"window.autoDetectColorScheme" = false;
|
|
||||||
};
|
nix = mkProfile [ layers.common layers.nix ] { };
|
||||||
};
|
|
||||||
|
web = mkProfile [ layers.common layers.web ] { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user