Zero Configuration

How Intellij SFCC delivers full code intelligence with no tsconfig, jsconfig, npm install, or type packages

Intellij SFCC supplies its own SFCC language-service configuration, bundled types, and project indexing. You do not need a tsconfig.json, jsconfig.json, installed type package, or manual generator step to enable its editor intelligence

A folder with cartridges and no tsconfig, jsconfig or package.json: link the cartridges the extension found, then ProductMgr. already completes from the bundled dw types

Open a folder that contains cartridges and the language server configures itself

What "Zero Config" Means

How Detection Works

The workspace settings map cartridge scripts to the SFCC languages and keep client and static code on plain JavaScript; cartridges.json lists each cartridge with its path

When the extension activates, it discovers the cartridges in your workspace and writes two things automatically:

Cartridge discovery

The extension scans the workspace for cartridges (folders that contain a cartridge/ directory, plus configured cartridge paths). This is the same cartridge model used across the extension

File associations

For each cartridge, server-side files are mapped to the SFCC language IDs so the language server picks them up:

PatternLanguage
**/cartridge/**/*.jssfcc-javascript
**/cartridge/**/*.tssfcc-typescript
*.dsdigitalscript
**/cartridge/client/**/*.jsjavascript (left as-is)
**/cartridge/static/**/*.jsjavascript (left as-is)

These workspace associations let VS Code select the intended language service. Frontend code should keep its normal JavaScript or TypeScript language mode

A generated .vscode/cartridges.json

The extension writes a .vscode/cartridges.json describing every cartridge and its path. This lets other tooling recognize SFCC project files

Coexisting With VS Code's Built-In TypeScript

VS Code already has a TypeScript/JavaScript language service. To avoid two engines fighting over the same file, Intellij SFCC installs a small TypeScript Server plugin (sfcc-ts-plugin) into VS Code's built-in service

The plugin reads .vscode/cartridges.json, recognizes SFCC-owned files, and steps aside for them - so the dedicated SFCC language server is the single source of truth for completions, diagnostics, and navigation on your cartridge code. Plain front-end JavaScript (under client/, static/, node_modules/) keeps using VS Code's normal service

This happens transparently:

  • The plugin is registered by the extension; you do not edit any tsconfig.json to enable it
  • It works with the workspace TypeScript version when one is present

If two services appear to diagnose the same file, check its language mode and cartridge associations. Frontend folders should remain assigned to VS Code's normal tooling. See Configuration & troubleshooting for the project checks

The Payoff

Because everything is automatic, the experience is the same whether you are:

  • Cloning a brand-new SFRA storefront,
  • Opening a legacy SiteGenesis project full of .ds files,
  • Or jumping into a single cartridge with no package.json at all

In every case, open the folder and you get dw.* completion, navigation, and diagnostics after discovery and indexing are ready

On this page