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.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}