{ pkgs, ... }: { home-manager.users.grape = { programs.vscode = { enable = true; package = pkgs.unstable.vscodium; extensions = with pkgs.vscode-extensions; [ # language suports rust-lang.rust-analyzer jnoortheen.nix-ide redhat.java redhat.vscode-yaml ms-azuretools.vscode-docker octref.vetur bungcip.better-toml mikestead.dotenv # linters esbenp.prettier-vscode naumovs.color-highlight # essentials, other streetsidesoftware.code-spell-checker vscodevim.vim oderwat.indent-rainbow usernamehw.errorlens christian-kohler.path-intellisense vscjava.vscode-spring-initializr gruntfuggly.todo-tree #themes, icons vscode-icons-team.vscode-icons mechatroner.rainbow-csv ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "shades-of-purple"; publisher = "ahmadawais"; version = "7.3.2"; sha256 = "10q5w9g7ghn2qvdc7h2b79x1vy8nzpnwz8dbg1h03074ikhvjx4v"; } ]; userSettings = { "terminal.integrated.defaultProfile.linux" = "zsh"; "editor.formatOnSave" = true; "editor.lineNumbers" = "relative"; "workbench.colorTheme" = "Shades of Purple (Super Dark)"; "editor.minimap.enabled" = false; "workbench.iconTheme" = "vscode-icons"; "vim.smartRelativeLine" = true; "redhat.telemetry.enabled" = false; "rust-analyzer.cargo.sysroot" = "discover"; "[typescriptreact]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; }; }; languageSnippets = { nix = { pkginit = { body = [ "{pkgs, ...}: {" "$1" "}" ]; description = "Insert a nix pkg config"; prefix = [ "nix" ]; }; }; }; }; }; }