Snippets | Zed Code Editor Documentation
Description: Learn how to use and customize Zed, the fast, collaborative code editor. Official docs on features, configuration, AI tools, and workflows.

# Snippets

Use the `snippets: configure snippets` action to create a new snippets file or edit a existing snippets file for a specified scope.

The snippets are located in `~/.config/zed/snippets` directory to which you can navigate to with the `snippets: open folder` action.

## Example configuration

    {
      // Each snippet must have a name and body, but the prefix and description are optional.
      // The prefix is used to trigger the snippet, but when omitted then the name is used.
      // Use placeholders like $1, $2 or ${1:defaultValue} to define tab stops.
      // The $0 determines the final cursor position.
      // Placeholders with the same value are linked.
      "Log to console": {
        "prefix": "log",
        "body": ["console.info(\"Hello, ${1:World}!\")", "$0"],
        "description": "Logs to console"
      }
    }

## Scopes

The scope is determined by the language name in lowercase e.g. `python.json` for Python, `shell script.json` for Shell Script, but there are some exceptions to this rule:

Scope | Filename
--- | ---
Global | snippets.json
JSX | javascript.json
Plain Text | plaintext.json

To create JSX snippets you have to use `javascript.json` snippets file, instead of `jsx.json`, but this does not apply to TSX and Typescript which follow the above rule.

## Known Limitations

- Only the first prefix is used when an list of prefixes is passed in.
- Currently only the `json` snippet file format is supported, even though the `simple-completion-language-server` supports both `json` and `toml` file formats.

## See also

For more configuration information, see the `simple-completion-language-server` instructions.