VSCode Workspace Configuration

The templates repository provides workspace configurations and boilerplate files for modern development projects. It contains template files that should be copied to new repositories and active .vscode configuration you can merge into a project root.

Repository Structure

The templates repository is organized as follows:

  • Root level: Files specific to the templates repository itself

  • workspaces/: Contains VS Code template folders for different workflows and configurations

Workspace Templates

The workspaces/ folder contains template folders that serve dual purposes:

Each template folder now includes a README.adoc with usage notes, extension lists, and merge instructions. Open the README directly inside workspaces/{name} when you need a refresher on what a template provides.

Template Files (Copy to New Repos)

Each template folder contains files that should be copied to new repositories:

  • .gitattributes - Git line ending configuration

  • .gitignore - Git ignore patterns

  • .hintrc - Webhint configuration

  • .github/FUNDING.yml - GitHub funding configuration

Active Configuration Files (Copy into Projects)

Each template folder also contains a .vscode directory with:

  • settings.json — editor defaults, excludes, and language-specific formatter overrides

  • extensions.jsonrecommendations and optional unwantedRecommendations

Available Templates

  • _common/ - Common extensions and template files for all projects (docs, git, media tools)

  • astro/ - Astro specific extensions and optimized settings

  • javascript/ - JavaScript/TypeScript workflow extensions (Biome, dprint)

  • next.js/ - Next.js specific extensions (Next.js assistant, icons, snippets)

  • python/ - Python workflow extensions (Ruff formatter)

  • rust/ - Rust workflow extensions

  • solidstart/ - SolidStart workflow extensions

Using Templates

To use a template in your project, copy and merge .vscode/settings.json and .vscode/extensions.json from both _common/ and your stack folder (e.g., javascript/ or next.js/) into your repository’s .vscode/ directory.

  1. Start from workspaces/_common/.vscode/ and merge settings.json and extensions.json into your project.

  2. Merge the same files from your stack folder (e.g., workspaces/astro/.vscode/), combining objects and extension lists rather than overwriting blindly.

This keeps a self-contained setup that matches Dev Center standards without relying on relative paths to the templates repo.

Multi-root workspaces

If you edit several repositories in one window, you can still add a local *.code-workspace file with multiple folders entries. Put shared settings in each repo’s .vscode/settings.json (or use workspace file settings only for truly multi-root keys). The templates repo no longer ships example multi-root workspace files.

Settings and Extension Recommendations

When you open a folder, VS Code loads .vscode/settings.json and .vscode/extensions.json from that folder automatically.

For multi-root workspaces opened via a .code-workspace file, folder-level .vscode still applies per root; you can add workspace-level settings in the .code-workspace file when multiple roots need the same overrides.

Settings precedence: For a single-folder window, User settings apply first, then Folder (.vscode/settings.json). Language-specific blocks (e.g., "[json]") override generic keys at the same scope, so we use explicit language blocks so team defaults win over personal formatter choices.

Creating New Templates

When creating a new template folder:

  1. Create a folder named after the technology or workflow (e.g., {workflow}/) in workspaces/

  2. Add a README.adoc explaining the template’s purpose and contents

  3. Add .vscode/settings.json and .vscode/extensions.json with the relevant defaults and recommendations

  4. Optionally add template files (.gitattributes, .gitignore, etc.) that should be copied to new repos

Extension Sourcing: We only list extensions that are available on the community-run OpenVSX marketplace. That guarantees they can be installed in Cursor and other third-party VS Code forks without extra setup.

Template folders are named after the technology or workflow they support, making it clear what the template is for when seen in the workspace.