## File Types
- Setting: `file_types`
- Description: Configure how Zed selects a language for a file based on its filename or extension. Supports glob entries.
- Default:
```json
"file_types": {
"JSONC": ["**/.zed/**/*.json", "**/zed/**/*.json", "**/Zed/**/*.json", "**/.vscode/**/*.json"],
"Shell Script": [".env.*"]
}
```
**Examples**
To interpret all `.c` files as C++, files called `MyLockFile` as TOML and files starting with `Dockerfile` as Dockerfile:
```json
{
"file_types": {
"C++": ["c"],
"TOML": ["MyLockFile"],
"Dockerfile": ["Dockerfile*"]
}
}
```
## Diagnostics
- Description: Configuration for diagnostics-related features.
- Setting: `diagnostics`
- Default:
```json
{
"diagnostics": {
"include_warnings": true,
"inline": {
"enabled": false
},
"update_with_cursor": false,
"primary_only": false,
"use_rendered": false
}
}
```
### Inline Diagnostics
- Description: Whether or not to show diagnostics information inline.
- Setting: `inline`
- Default:
```json
{
"diagnostics": {
"inline": {
"enabled": false,
"update_debounce_ms": 150,
"padding": 4,
"min_column": 0,
"max_severity": null
}
}
}
```
**Options**
1. Enable inline diagnostics.
```json
{
"diagnostics": {
"inline": {
"enabled": true
}
}
}
```
2. Delay diagnostic updates until some time after the last diagnostic update.
```json
{
"diagnostics": {
"inline": {
"enabled": true,
"update_debounce_ms": 150
}
}
}
```
3. Set padding between the end of the source line and the start of the diagnostic.
```json
{
"diagnostics": {
"inline": {
"enabled": true,
"padding": 4
}
}
}
```
4. Horizontally align inline diagnostics at the given column.
```json
{
"diagnostics": {
"inline": {
"enabled": true,
"min_column": 80
}
}
}
```
5. Show only warning and error diagnostics.
```json
{
"diagnostics": {
"inline": {
"enabled": true,
"max_severity": "warning"
}
}
}
```
## Git
- Description: Configuration for git-related features.
- Setting: `git`
- Default:
```json
{
"git": {
"git_gutter": "tracked_files",
"inline_blame": {
"enabled": true
},
"hunk_style": "staged_hollow"
}
}
```
### Git Gutter
- Description: Whether or not to show the git gutter.
- Setting: `git_gutter`
- Default: `tracked_files`
**Options**
1. Show git gutter in tracked files
```json
{
"git": {
"git_gutter": "tracked_files"
}
}
```
2. Hide git gutter
```json
{
"git": {
"git_gutter": "hide"
}
}
```
### Gutter Debounce
- Description: Sets the debounce threshold (in milliseconds) after which changes are reflected in the git gutter.
- Setting: `gutter_debounce`
- Default: `null`
**Options**
`integer` values representing milliseconds
Example:
```json
{
"git": {
"gutter_debounce": 100
}
}
```
### Inline Git Blame
- Description: Whether or not to show git blame information inline, on the currently focused line.
- Setting: `inline_blame`
- Default:
```json
{
"git": {
"inline_blame": {
"enabled": true
}
}
}
```
**Options**
1. Disable inline git blame:
```json
{
"git": {
"inline_blame": {
"enabled": false
}
}
}
```
2. Only show inline git blame after a delay (that starts after cursor stops moving):
```json
{
"git": {
"inline_blame": {
"enabled": true,
"delay_ms": 500
}
}
}
```
3. Show a commit summary next to the commit date and author:
```json
{
"git": {
"inline_blame": {
"enabled": true,
"show_commit_summary": true
}
}
}
```
4. Use this as the minimum column at which to display inline blame information:
```json
{
"git": {
"inline_blame": {
"enabled": true,
"min_column": 80
}
}
}
```
### Hunk Style
- Description: What styling we should use for the diff hunks.
- Setting: `hunk_style`
- Default:
```json
{
"git": {
"hunk_style": "staged_hollow"