This commit is contained in:
2026-02-21 14:01:19 +09:00
parent 08b386bb43
commit c291f54f2e
+50 -17
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,7 +18,8 @@ let
layers = rec { layers = rec {
common = { common = {
extensions = (with vsc; [ extensions =
(with vsc; [
github.copilot github.copilot
github.copilot-chat github.copilot-chat
dracula-theme.theme-dracula dracula-theme.theme-dracula
@@ -30,13 +32,20 @@ let
eamodio.gitlens eamodio.gitlens
streetsidesoftware.code-spell-checker streetsidesoftware.code-spell-checker
ms-ceintl.vscode-language-pack-ja ms-ceintl.vscode-language-pack-ja
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ])
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{ {
name = "hadolint"; name = "hadolint";
publisher = "exiasr"; publisher = "exiasr";
version = "1.1.2"; version = "1.1.2";
hash = "sha256-6GO1f8SP4CE8yYl87/tm60FdGHqHsJA4c2B6UKVdpgM="; 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";
@@ -48,21 +57,27 @@ 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 =
(with vsc; [
biomejs.biome biomejs.biome
lokalise.i18n-ally lokalise.i18n-ally
bradlc.vscode-tailwindcss bradlc.vscode-tailwindcss
prisma.prisma prisma.prisma
hashicorp.terraform hashicorp.terraform
yoavbls.pretty-ts-errors yoavbls.pretty-ts-errors
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ])
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{ {
name = "pnpm-catalog-lens"; name = "pnpm-catalog-lens";
publisher = "antfu"; publisher = "antfu";
@@ -112,12 +127,15 @@ let
}; };
java = { java = {
extensions = (with vsc; [ extensions = (
with vsc;
[
vscjava.vscode-java-pack vscjava.vscode-java-pack
sonarsource.sonarlint-vscode sonarsource.sonarlint-vscode
vscjava.vscode-java-debug vscjava.vscode-java-debug
redhat.java 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:
builtins.foldl'
(acc: l: {
extensions = acc.extensions ++ (l.extensions or [ ]); extensions = acc.extensions ++ (l.extensions or [ ]);
userSettings = recursiveUpdate acc.userSettings (l.userSettings or { }); userSettings = recursiveUpdate acc.userSettings (l.userSettings or { });
}) { extensions = []; userSettings = {}; } ls })
{
extensions = [ ];
userSettings = { };
}
ls
); );
# mkProfile [layers...] { extensions = [...]; userSettings = { ... }; } # mkProfile [layers...] { extensions = [...]; userSettings = { ... }; }
mkProfile = layersList: extras: mkProfile =
let base = combine layersList; layersList: extras:
in { let
base = combine layersList;
in
{
extensions = base.extensions ++ (extras.extensions or [ ]); extensions = base.extensions ++ (extras.extensions or [ ]);
userSettings = recursiveUpdate base.userSettings (extras.userSettings or { }); userSettings = recursiveUpdate base.userSettings (extras.userSettings or { });
}; };
in { in
{
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.vscode = { programs.vscode = {