docs: Document per-release channel configuration (#40833)

## Summary
- Document the `stable`/`preview`/`nightly` top-level keys that let
users scope settings overrides per release channel.
- Provide an example `settings.json` snippet and call out that overrides
replace array values rather than merging them.
- Mention that UI-driven changes edit the root config so per-channel
blocks might need manual updates.

## Testing
- Not run (docs only).

Fixes #40458.

Release Notes:

- N/A

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
This commit is contained in:
Mohin Hasin Rabbi 2025-10-27 16:50:32 +00:00 committed by GitHub
parent 1ae8e0c53a
commit ba26ca4aee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -21,6 +21,28 @@ Although most projects will only need one settings file at the root, you can add
The syntax for configuration files is a super-set of JSON that allows `//` comments.
### Per-release channel overrides
Zed reads the same `settings.json` across all release channels (Stable, Preview or Nightly). However, you can scope overrides to a specific channel by adding top-level `stable`, `preview`, `nightly` or `dev` objects. They are merged into the base configuration with settings from these keys taking precedence upon launching the specified build. For example:
```json [settings]
{
"theme": "sunset",
"vim_mode": false,
"nightly": {
"theme": "cave-light",
"vim_mode": true
},
"preview": {
"theme": "zed-dark"
}
}
```
With this configuration, Stable keeps all base preferences, Preview switches to `zed-dark`, and Nightly enables Vim mode with a different theme.
Changing settings via the UI will always apply the change across all channels.
## Default settings
You can find the default settings for your current Zed by running {#action zed::OpenDefaultSettings} from the command palette.