This commit is contained in:
2026-02-21 14:01:19 +09:00
parent 08b386bb43
commit c291f54f2e
+107 -74
View File
@@ -8,7 +8,8 @@ let
rustBindgenExtraClangArgs = lib.concatStringsSep " " ( rustBindgenExtraClangArgs = lib.concatStringsSep " " (
(builtins.map (a: ''-I"${a}/include"'') [ (builtins.map (a: ''-I"${a}/include"'') [
pkgs.glibc.dev pkgs.glibc.dev
]) ++ [ ])
++ [
''-I"${pkgs.llvmPackages_latest.libclang.lib}/lib/clang/${pkgs.llvmPackages_latest.libclang.version}/include"'' ''-I"${pkgs.llvmPackages_latest.libclang.lib}/lib/clang/${pkgs.llvmPackages_latest.libclang.version}/include"''
''-I"${pkgs.glib.dev}/include/glib-2.0"'' ''-I"${pkgs.glib.dev}/include/glib-2.0"''
''-I${pkgs.glib.out}/lib/glib-2.0/include/'' ''-I${pkgs.glib.out}/lib/glib-2.0/include/''
@@ -17,27 +18,35 @@ let
layers = rec { layers = rec {
common = { common = {
extensions = (with vsc; [ extensions =
github.copilot (with vsc; [
github.copilot-chat github.copilot
dracula-theme.theme-dracula github.copilot-chat
ms-vscode-remote.vscode-remote-extensionpack dracula-theme.theme-dracula
dbaeumer.vscode-eslint ms-vscode-remote.vscode-remote-extensionpack
ms-vscode-remote.remote-containers dbaeumer.vscode-eslint
ms-vscode-remote.remote-ssh ms-vscode-remote.remote-containers
github.vscode-github-actions ms-vscode-remote.remote-ssh
github.vscode-pull-request-github github.vscode-github-actions
eamodio.gitlens github.vscode-pull-request-github
streetsidesoftware.code-spell-checker eamodio.gitlens
ms-ceintl.vscode-language-pack-ja streetsidesoftware.code-spell-checker
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ms-ceintl.vscode-language-pack-ja
{ ])
name = "hadolint"; ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
publisher = "exiasr"; {
version = "1.1.2"; name = "hadolint";
hash = "sha256-6GO1f8SP4CE8yYl87/tm60FdGHqHsJA4c2B6UKVdpgM="; publisher = "exiasr";
} version = "1.1.2";
]; hash = "sha256-6GO1f8SP4CE8yYl87/tm60FdGHqHsJA4c2B6UKVdpgM=";
}
{
name = "chatgpt";
publisher = "openai";
version = "0.4.71";
hash = "sha256-Q0le5rhVRgTDQXjIlhbzJOv/7+xC6JXwTp6fxZCP4ak=";
}
];
userSettings = { userSettings = {
"workbench.colorTheme" = "Dracula"; "workbench.colorTheme" = "Dracula";
"window.autoDetectColorScheme" = false; "window.autoDetectColorScheme" = false;
@@ -48,40 +57,46 @@ let
"git.confirmSync" = false; "git.confirmSync" = false;
"github.copilot.nextEditSuggestions.enabled" = true; "github.copilot.nextEditSuggestions.enabled" = true;
"editor.suggestOnTriggerCharacters" = true; "editor.suggestOnTriggerCharacters" = true;
"editor.quickSuggestions" = { other = true; comments = false; strings = true; }; "editor.quickSuggestions" = {
other = true;
comments = false;
strings = true;
};
"git.autofetch" = true; "git.autofetch" = true;
"workbench.editor.enablePreview" = false; "workbench.editor.enablePreview" = false;
}; };
}; };
web = { web = {
extensions = (with vsc; [ extensions =
biomejs.biome (with vsc; [
lokalise.i18n-ally biomejs.biome
bradlc.vscode-tailwindcss lokalise.i18n-ally
prisma.prisma bradlc.vscode-tailwindcss
hashicorp.terraform prisma.prisma
yoavbls.pretty-ts-errors hashicorp.terraform
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ yoavbls.pretty-ts-errors
{ ])
name = "pnpm-catalog-lens"; ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
publisher = "antfu"; {
version = "1.0.0"; name = "pnpm-catalog-lens";
hash = "sha256-mCMBVxZRIb3Jao1XSS7EQRQX3Y2vrkpAmy6ldSqZa9c="; publisher = "antfu";
} version = "1.0.0";
{ hash = "sha256-mCMBVxZRIb3Jao1XSS7EQRQX3Y2vrkpAmy6ldSqZa9c=";
name = "explorer"; }
publisher = "vitest"; {
version = "1.32.1"; name = "explorer";
hash = "sha256-MAfjS/oFfFuiE+Q2w6leSlao436QSw2fKjd7/BE/Q8Y="; publisher = "vitest";
} version = "1.32.1";
{ hash = "sha256-MAfjS/oFfFuiE+Q2w6leSlao436QSw2fKjd7/BE/Q8Y=";
name = "native-preview"; }
publisher = "typescriptteam"; {
version = "0.20251104.1"; name = "native-preview";
hash = "sha256-lUSwtf7jncnrp6UXgmZU30e+CFRKqf0N41+Xna6daok="; publisher = "typescriptteam";
} version = "0.20251104.1";
]; hash = "sha256-lUSwtf7jncnrp6UXgmZU30e+CFRKqf0N41+Xna6daok=";
}
];
userSettings = { userSettings = {
"editor.defaultFormatter" = "biomejs.biome"; "editor.defaultFormatter" = "biomejs.biome";
"[typescript].editor.defaultFormatter" = "biomejs.biome"; "[typescript].editor.defaultFormatter" = "biomejs.biome";
@@ -97,7 +112,7 @@ let
userSettings = { userSettings = {
"nix.enableLanguageServer" = true; "nix.enableLanguageServer" = true;
"nix.serverPath" = "nil"; "nix.serverPath" = "nil";
"[nix]"={ "[nix]" = {
"editor.defaultFormatter" = "jnoortheen.nix-ide"; "editor.defaultFormatter" = "jnoortheen.nix-ide";
}; };
}; };
@@ -108,16 +123,19 @@ let
ms-toolsai.jupyter ms-toolsai.jupyter
ms-python.python ms-python.python
]; ];
userSettings = {}; userSettings = { };
}; };
java = { java = {
extensions = (with vsc; [ extensions = (
vscjava.vscode-java-pack with vsc;
sonarsource.sonarlint-vscode [
vscjava.vscode-java-debug vscjava.vscode-java-pack
redhat.java sonarsource.sonarlint-vscode
]); vscjava.vscode-java-debug
redhat.java
]
);
userSettings = { userSettings = {
"java.jdt.ls.java.home" = "${pkgs.jdk25.home}"; "java.jdt.ls.java.home" = "${pkgs.jdk25.home}";
@@ -185,28 +203,43 @@ let
"rust-analyzer.lens.references.method.enable" = true; "rust-analyzer.lens.references.method.enable" = true;
"rust-analyzer.lens.references.trait.enable" = true; "rust-analyzer.lens.references.trait.enable" = true;
"files.watcherExclude" = { "**/target/**" = true; }; "files.watcherExclude" = {
"search.exclude" = { "**/target/**" = true; }; "**/target/**" = true;
};
"search.exclude" = {
"**/target/**" = true;
};
}; };
}; };
}; };
combine = (ls: combine = (
builtins.foldl' (acc: l: { ls:
extensions = acc.extensions ++ (l.extensions or []); builtins.foldl'
userSettings = recursiveUpdate acc.userSettings (l.userSettings or {}); (acc: l: {
}) { extensions = []; userSettings = {}; } ls extensions = acc.extensions ++ (l.extensions or [ ]);
userSettings = recursiveUpdate acc.userSettings (l.userSettings or { });
})
{
extensions = [ ];
userSettings = { };
}
ls
); );
# mkProfile [layers...] { extensions = [...]; userSettings = { ... }; } # mkProfile [layers...] { extensions = [...]; userSettings = { ... }; }
mkProfile = layersList: extras: mkProfile =
let base = combine layersList; layersList: extras:
in { let
extensions = base.extensions ++ (extras.extensions or []); base = combine layersList;
userSettings = recursiveUpdate base.userSettings (extras.userSettings or {}); in
{
extensions = base.extensions ++ (extras.extensions or [ ]);
userSettings = recursiveUpdate base.userSettings (extras.userSettings or { });
}; };
in { in
{
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.vscode = { programs.vscode = {
@@ -228,8 +261,8 @@ in {
}; };
xdg.configFile."Code/User/locale.json".text = '' xdg.configFile."Code/User/locale.json".text = ''
{ {
"locale": "ja" "locale": "ja"
} }
''; '';
} }