My VS Code setup
I got a new work laptop recently and part of the setup process was installing and configuring VS Code to match my preferences. This usually takes a bit of time because I cannot always remember all the settings and extensions that I tweak or install. I’m aware that VS Code supports syncing of settings, extensions, etc. across devices but it’s not always possible to login with my GitHub/Microsoft account. So here are the settings and extensions that I usually change/add to a brand new VS Code installation.
Settings
{
"extensions.autoUpdate": false,
"git.autofetch": true,
"git.confirmSync": false,
"editor.fontFamily": "'JetBrains Mono'",
"workbench.editor.untitled.labelFormat": "name",
"diffEditor.ignoreTrimWhitespace": false,
"githubIssues.queries": [
{
"label": "My Issues",
"query": "default"
},
{
"label": "All Issues",
"query": "state:open repo:${owner}/${repository} sort:created-desc"
}
],
"editor.rulers": [120],
"editor.wordWrap": "wordWrapColumn",
"editor.wordWrapColumn": 120,
"screencastMode.onlyKeyboardShortcuts": true,
"gitlens.hovers.currentLine.over": "line",
"editor.fontSize": 16,
"editor.lineHeight": 1.5,
"terminal.integrated.fontFamily": "monospace",
"editor.tabSize": 2,
"workbench.startupEditor": "none",
"typescript.updateImportsOnFileMove.enabled": "always",
"editor.bracketPairColorization.enabled": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.guides.bracketPairs": true,
"[markdown]": {
"editor.wordWrap": "wordWrapColumn",
"editor.wordWrapColumn": 120
},
"editor.unicodeHighlight.ambiguousCharacters": false,
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"package.json": "package-lock.json, .npmrc, yarn.lock, .yarnrc, .editorconfig, .prettier*, .gitignore, .eslintrc.json, jest.*.js, nx.json, tsconfig.*.json"
},
"git.mergeEditor": true,
"window.commandCenter": true,
"editor.minimap.showSlider": "always",
"emmet.useInlineCompletions": true,
"editor.quickSuggestions": {
"other": "off"
},
"githubPullRequests.createOnPublishBranch": "never",
"rxjsDebugging.enableUsageAnalytics": false,
"githubPullRequests.pullBranch": "never",
"editor.stickyScroll.enabled": true,
"remoteHub.uncommittedChangesOnEntry": "none",
"markdownlint.config": {
"MD033": false
},
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.accessibilitySupport": "off",
"gitlens.defaultDateFormat": null,
"editor.inlineSuggest.enabled": true,
"terminal.integrated.defaultProfile.windows": "PowerShell",
"nxConsole.showNodeVersionOnStartup": false
}
Extensions
- Angular Language Service
- Bracket Pair Colorization Toggler
- Copy Json Path
- CSS Flexbox Cheatsheet
- CSS Initial Value
- CSS Stacking Contexts
- EditorConfig for VS Code
- es6-string-html
- ESLint
- File Utils
- Git Cheatsheet
- GitHub Actions
- GitHub Copilot
- GitHub Pull Requests and Issues
- GitHub Repositories
- GitLens — Git supercharged
- Image preview
- Jest Runner
- Live Share
- markdownlint
- MDX
- NPM Imported Package Links
- Nx Console
- PowerShell
- Prettier - Code formatter
- Pretty TypeScript Errors
- Project Manager
- Remote Repositories
- RxJS Cheatsheet
- RxJS Debugging for Visual Studio Code
- Test Focus Highlighter
- webhint
Keybindings
[
{
"key": "ctrl+space",
"command": "workbench.action.terminal.runRecentCommand",
"when": "terminalFocus"
}
]
Git
git config --global user.name "My Name"
git config --global user.email "email@domain.com"
git config --global --add push.autoSetupRemote true
Fonts
- JetBrains Mono
- Fira Code (alternative)