VSCode Documentation

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

Language Support

Web Development:

Mobile Development:

Backend & Systems:

Infrastructure:

Database & Data

API & Documentation

Development Tools

Remote Development Extensions

Utility Extensions

Build & Project Management

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

  1. AI-assisted coding - Claude Code and GitHub Copilot handle the heavy lifting
  2. Format on save - Prettier keeps everything consistent
  3. Continuous linting - ESLint catches issues as I type
  4. Remote development - SSH and containers for different environments
  5. Database work - Integrated SQL tools for quick queries
  6. 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


© Mark Norgren. Some rights reserved.

Build Date: 2025-06-25

f16476d