{ config, lib, pkgs, ... }: { programs.vscode = { enable = true; package = pkgs.vscodium; extensions = ( with pkgs.vscode-extensions; [ pkief.material-icon-theme jnoortheen.nix-ide arrterian.nix-env-selector scala-lang.scala scalameta.metals hashicorp.terraform bradlc.vscode-tailwindcss ] ); userSettings = { "editor.formatOnSave" = true; "editor.quickSuggestions" = { "strings" = true; }; "tailwindCSS.includeLanguages" = { "scala" = "html"; }; "tailwindCSS.experimental.classRegex" = [ [ "cls\\(([^)]*)\\)" "\"([^']*)\"" ] ]; "files.autoSave" = "onFocusChange"; "files.watcherExclude" = { "**/.bloop" = true; "**/.metals" = true; "**/.ammonite" = true; }; "gruvboxMaterial.darkContrast" = "hard"; "metals.millScript" = "mill"; "nix.enableLanguageServer" = true; "terminal.integrated.confirmOnExit" = "hasChildProcesses"; "terraform.languageServer" = { "external" = true; "pathToBinary" = ""; "args" = [ "serve" ]; "maxNumberOfProblems" = 100; "trace.server" = "off"; }; "workbench.colorTheme" = "Gruvbox Material Dark"; "workbench.iconTheme" = "material-icon-theme"; }; }; }