Kieran's opinionated (and probably slightly dumb) nix config
1{
2 lib,
3 pkgs,
4 config,
5 inputs,
6 ...
7}:
8{
9 options.atelier.apps.vscode.enable = lib.mkEnableOption "Enable VSCode config";
10 config = lib.mkIf config.atelier.apps.vscode.enable {
11 nixpkgs.overlays = [
12 inputs.nix-vscode-extensions.overlays.default
13 inputs.catppuccin-vsc.overlays.default
14 ];
15 programs.vscode = {
16 enable = true;
17 package = pkgs.unstable.vscode;
18 profiles.default = {
19 extensions = with pkgs.vscode-marketplace; [
20 ms-vscode.live-server
21 formulahendry.auto-rename-tag
22 edwinkofler.vscode-assorted-languages
23 golang.go
24 eamodio.gitlens
25 yzhang.markdown-all-in-one
26 github.vscode-github-actions
27 yoavbls.pretty-ts-errors
28 esbenp.prettier-vscode
29 ms-vscode.vscode-serial-monitor
30 prisma.prisma
31 ms-azuretools.vscode-docker
32 astro-build.astro-vscode
33 github.copilot
34 github.copilot-chat
35 dotjoshjohnson.xml
36 mikestead.dotenv
37 bradlc.vscode-tailwindcss
38 mechatroner.rainbow-csv
39 wakatime.vscode-wakatime
40 paulober.pico-w-go
41 ms-python.python
42 karunamurti.tera
43 biomejs.biome
44 bschulte.love
45 yinfei.luahelper
46 tamasfe.even-better-toml
47 fill-labs.dependi
48 rust-lang.rust-analyzer
49 dustypomerleau.rust-syntax
50 catppuccin.catppuccin-vsc
51 inputs.frc-nix.packages.${pkgs.stdenv.hostPlatform.system}.vscode-wpilib
52 ];
53 userSettings = {
54 "editor.semanticHighlighting.enabled" = true;
55 "terminal.integrated.minimumContrastRatio" = 1;
56 "window.titleBarStyle" = "custom";
57 "gopls" = {
58 "ui.semanticTokens" = true;
59 };
60 "workbench.colorTheme" = "Catppuccin Macchiato";
61 "workbench.iconTheme" = "catppuccin-macchiato";
62 "catppuccin.accentColor" = lib.mkForce "blue";
63 "editor.fontFamily" = "'FiraCode Nerd Font', 'monospace', monospace";
64 "git.autofetch" = true;
65 "git.confirmSync" = false;
66 "github.copilot.editor.enableAutoCompletions" = false;
67 "editor.formatOnSave" = true;
68 "editor.defaultFormatter" = "biomejs.biome";
69 "[go]" = {
70 "editor.defaultFormatter" = "golang.go";
71 };
72 "[yaml]" = {
73 "editor.defaultFormatter" = "esbenp.prettier-vscode";
74 };
75 "[lua]" = {
76 "editor.defaultFormatter" = "yinfei.luahelper";
77 };
78 "[html]" = {
79 "editor.defaultFormatter" = "esbenp.prettier-vscode";
80 };
81 };
82 };
83 };
84 };
85}