settings.json and the Settings Hierarchy
Every VS Code preference — themes, font size, formatting rules, extension behavior — lives in settings.json, at multiple possible levels that resolve in a predictable order.
The Settings UI (Ctrl+,) is a friendly front-end over the same underlying JSON file. Search, toggle, and adjust settings visually, or click the "Open Settings (JSON)" icon to edit the raw file directly — both change exactly the same underlying configuration.
Four levels exist, each overriding the ones before it: Default → User → Workspace → Folder. Defaults are VS Code's own built-in values; User settings apply to everything on your machine; Workspace settings apply only to the current project (.vscode/settings.json, the same file referenced in the Workspaces course); Folder settings apply to one specific folder within a multi-root workspace.
A Workspace setting overriding a User setting is normal and expected, not a conflict to resolve — a project can deliberately use a different tab size or formatter than your personal global default, and both configurations coexist correctly.
Settings sync automatically the moment you save the JSON file — no restart required for most settings; VS Code applies changes live.
Search settings by typing in the Settings UI's search box, which matches against setting IDs, descriptions, and even related terms — genuinely faster than remembering an exact setting name.
Why this matters for you
Understanding the four-level hierarchy is what makes a project-specific setting (committed and shared with a team) and your own personal global preference coexist correctly, rather than fighting each other.
▶️ Before the next lesson
Open Settings (Ctrl+,) and search for one preference you've wondered about changing — confirm you can find and adjust it without editing raw JSON if you'd rather not.