Zed

1. Install

Open the Extensions panel (Cmd+Shift+X) and search for syntaqlite: SQLite language server and formatter. Click Install. The extension downloads the binary automatically; no other setup is needed.

2. See diagnostics

Create a file called demo.sql and paste this in:

select id,name,email,created_at from users as u wehre active=1 and role='admin' order by created_at desc

Zed should underline wehre. Change it to where before continuing.

3. Format

Run Editor: Format Buffer from the command palette (Cmd+Shift+P). The query becomes:

SELECT id, name, email, created_at
FROM users AS u
WHERE
  active = 1
  AND role = 'admin'
ORDER BY
  created_at DESC;

4. Add a schema

So far syntaqlite only checks syntax. To catch unknown tables and columns, create a file called schema.sql next to demo.sql:

CREATE TABLE users (
  id INTEGER, name TEXT, email TEXT,
  active INTEGER, role TEXT, created_at TEXT
);

Then create syntaqlite.toml in the same directory:

[schemas]
"**/*.sql" = ["schema.sql"]

Go back to demo.sql and change name to nme. The language server should underline it and report unknown column 'nme', did you mean 'name'? Change it back to name before continuing.

5. Completions

Now that you have a schema, type a new query in demo.sql. After FROM , you'll see users offered as a completion. After SELECT , you'll see id, name, email, and active.

Configuration

The extension needs no configuration for normal use. You can override the binary or config file in your Zed settings (Cmd+,) when necessary:

Custom binary path: use your own build instead of the auto-downloaded one:

{
  "lsp": {
    "syntaqlite": {
      "binary": {
        "path": "/path/to/syntaqlite"
      }
    }
  }
}

Custom config path: point to a specific syntaqlite.toml instead of relying on auto-discovery:

{
  "lsp": {
    "syntaqlite": {
      "initialization_options": {
        "config": "/path/to/syntaqlite.toml"
      }
    }
  }
}

Next steps