Home Explore Blog CI



zed

docs/src/languages/sql.md
33a8dacded1dc1a24f0555e5fbf3ec50c7d289faf0319ba900000003000006cf
# SQL

SQL files are handled by the [SQL Extension](https://github.com/zed-extensions/sql).

- Tree-sitter: [nervenes/tree-sitter-sql](https://github.com/nervenes/tree-sitter-sql)

### Formatting

Zed supports auto-formatting SQL using external tools like [`sql-formatter`](https://github.com/sql-formatter-org/sql-formatter).

1. Install `sql-formatter`:

```sh
npm install -g sql-formatter
```

2. Ensure `shfmt` is available in your path and check the version:

```sh
which sql-formatter
sql-formatter --version
```

3. Configure Zed to automatically format SQL with `sql-formatter`:

```json
  "languages": {
    "SQL": {
      "formatter": {
        "external": {
          "command": "sql-formatter",
          "arguments": ["--language", "mysql"]
        }
      }
    }
  },
```

Substitute your preferred [SQL Dialect] for `mysql` above (`duckdb`, `hive`, `mariadb`, `postgresql`, `redshift`, `snowflake`, `sqlite`, `spark`, etc).

You can add this to Zed project settings (`.zed/settings.json`) or via your Zed user settings (`~/.config/zed/settings.json`).

### Advanced Formatting

Sql-formatter also allows more precise control by providing [sql-formatter configuration options](https://github.com/sql-formatter-org/sql-formatter#configuration-options). To provide these, create a `sql-formatter.json` file in your project:

```json
{
  "language": "postgresql",
  "tabWidth": 2,
  "keywordCase": "upper",
  "linesBetweenQueries": 2
}
```

When using a `sql-formatter.json` file you can use a more simplified set of Zed settings since the language need not be specified inline:

```json
  "languages": {
    "SQL": {
      "formatter": {
        "external": {
          "command": "sql-formatter"
        }
      }
    }
  },
```

Chunks
beac1f5f (1st chunk of `docs/src/languages/sql.md`)
Title: SQL Support and Formatting in Zed
Summary
Zed supports SQL files via the SQL Extension and uses tree-sitter for parsing. It allows auto-formatting using external tools like `sql-formatter`. To enable formatting, install `sql-formatter`, ensure it's in your path, and configure Zed with the command and arguments for the desired SQL dialect. Advanced formatting can be achieved by creating a `sql-formatter.json` file in your project with specific configuration options, simplifying the Zed settings.