{ pkgs, ... }: { home.packages = with pkgs; [ shellcheck shfmt # for shell-format extension ]; programs.vscode = { enable = true; mutableExtensionsDir = false; extensions = with pkgs.vscode-extensions; [ eamodio.gitlens esbenp.prettier-vscode file-icons.file-icons foxundermoon.shell-format jnoortheen.nix-ide kamikillerto.vscode-colorize scalameta.metals timonwong.shellcheck ]; userSettings = { "[css,html,javascript,javascriptreact,json,less,markdown,scss,sass,typescript,typescriptreact,vue,vue-html,yaml]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; }; "[bats,dockerfile,hosts,ignore,jvmoptions,properties,shellscript]" = { "editor.defaultFormatter" = "foxundermoon.shell-format"; }; "colorize.languages" = [ "javascript" "nix" ]; "editor.formatOnSave" = true; "editor.wordWrap" = "on"; "files.autoSave" = "afterDelay"; "files.watcherExclude" = { "**/.bloop" = true; "**/.metals" = true; "**/.ammonite" = true; }; "git.openRepositoryInParentFolders" = "always"; "nix.formatterPath" = "nixpkgs-fmt"; "security.workspace.trust.untrustedFiles" = "open"; "workbench.colorTheme" = "Default Dark Modern"; "workbench.iconTheme" = "file-icons"; }; }; }