VSCode Documentation
Documenting some of my VSCode setup so I have a place to reference when people ask or I have to setup on a new machine.
Here’s what I’m running in 2025.
The Extensions I Actually Use
AI & Code Intelligence
- anthropic.claude-code - The new Claude Code extension. Way better than the old claude-dev one I was using
- github.copilot + github.copilot-chat - Still the best AI pair programmer
Language Support
Web Development:
- esbenp.prettier-vscode - Handles all my formatting needs
- dbaeumer.vscode-eslint - Keeps my JavaScript/TypeScript clean
Mobile Development:
- swiftlang.swift-vscode - Swift support (finally official!)
- vknabel.vscode-apple-swift-format + vknabel.vscode-swiftformat - Swift formatting
- orta.vscode-ios-common-files - iOS project helpers (fastlane)
Backend & Systems:
- golang.go - Go development
- ms-python.python + ms-python.vscode-pylance - Python with excellent IntelliSense
- ms-dotnettools.csdevkit + ms-dotnettools.csharp - Full .NET stack
- csharpier.csharpier-vscode - C# formatting that follows prettier’s philosophy
Infrastructure:
- hashicorp.terraform + 4ops.terraform - Infrastructure as code
- redhat.vscode-yaml - YAML editing
Database & Data
- ms-mssql.mssql + ms-ossdata.vscode-pgsql - Database connection
- mtxr.sqltools with PostgreSQL and
API & Documentation
- arjun.swagger-viewer - API docs viewing
- jebbs.plantuml - Diagrams when I need them
Development Tools
- ms-toolsai.jupyter - Jupyter notebooks
- docker.docker - Docker integration
- github.vscode-github-actions - GitHub Actions workflow editing
- github.vscode-pull-request-github - PR management without leaving VS Code
Remote Development Extensions
- ms-vscode-remote.vscode-remote-extensionpack - The whole remote dev suite
- kelvin.vscode-sshfs - SSH filesystem mounting
Utility Extensions
- eriklynd.json-tools + zainchen.json - JSON manipulation
- mechatroner.rainbow-csv + janisdd.vscode-edit-csv - CSV editing
- m4ns0ur.base64 - Base64 encoding/decoding
- streetsidesoftware.code-spell-checker - Catches my typos
- vscode-icons-team.vscode-icons - Better file icons
Build & Project Management
- nefrob.vscode-just-syntax - Just command runner (prefer this over make)
- vscjava.vscode-gradle - Gradle projects
Settings
Editor Basics
1
2
3
4
5
6
7
8
{
"editor.wordWrap": "off",
"editor.renderControlCharacters": true,
"editor.inlineSuggest.enabled": true,
"editor.stickyScroll.enabled": true,
"editor.formatOnSave": true,
"workbench.tree.indent": 20
}
Language-Specific Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.wordWrap": "off",
"editor.formatOnSave": true,
"prettier.printWidth": 80,
"prettier.proseWrap": "always"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[csharp]": {
"editor.defaultFormatter": "csharpier.csharpier-vscode"
}
}
Prettier Setup
1
2
3
{
"prettier.proseWrap": "always"
}
This is key - I want Prettier to handle prose wrapping, not the editor’s visual word wrap.
File Management
1
2
3
4
5
6
7
8
{
"files.autoSave": "afterDelay",
"files.autoSaveWhenNoErrors": true,
"files.exclude": {
"**/.cache/**": true,
"**/.git": false
}
}
File Nesting
1
2
3
4
5
6
7
8
9
10
11
12
{
"explorer.fileNesting.patterns": {
"*.ts": "${capture}.js",
"*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts",
"*.jsx": "${capture}.js",
"*.tsx": "${capture}.ts",
"tsconfig.json": "tsconfig.*.json",
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock",
"*.sqlite": "${capture}.${extname}-*",
"*.db": "${capture}.${extname}-*"
}
}
Theme & UI
1
2
3
4
5
6
{
"workbench.colorTheme": "Visual Studio Dark",
"workbench.iconTheme": "vscode-icons",
"workbench.startupEditor": "none",
"workbench.editor.empty.hint": "hidden"
}
Remote Development
1
2
3
4
5
6
7
8
{
"remote.SSH.useLocalServer": false,
"remote.SSH.showLoginTerminal": true,
"remote.SSH.connectTimeout": 60,
"remote.SSH.serverInstallTimeout": 120,
"remote.SSH.maxReconnectionAttempts": 5,
"remote.SSH.enableDynamicForwarding": true
}
Terminal
1
2
3
{
"terminal.integrated.enableMultiLinePasteWarning": "never"
}
MCP Servers Configuration
MCP (Model Context Protocol) servers for enhanced AI capabilities:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"mcp": {
"servers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://user:[email protected]:5432/database"
]
},
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/Chicago"]
}
}
}
}
Markdown Setup
- Prettier handles formatting with 80-character line wrapping
- Disabled visual word wrap (I want actual line breaks, not visual ones)
- Format on save enabled for consistent styling
I wanted Prettier to add actual line breaks at 80 characters, not just visual wrapping.
How I Work
- AI-assisted coding - Claude Code and GitHub Copilot handle the heavy lifting
- Format on save - Prettier keeps everything consistent
- Continuous linting - ESLint catches issues as I type
- Remote development - SSH and containers for different environments
- Database work - Integrated SQL tools for quick queries
- API documentation - Swagger viewers for API exploration
This setup handles most projects - web development, mobile apps, backend services, and infrastructure work. The key is having everything format automatically so I can focus on the actual code.
Useful Resources
- VS Code Extension Marketplace
- VS Code Settings Sync
- VS Code Remote Development
- Prettier Configuration
- ESLint Configuration
- GitHub Copilot Documentation