Home Explore Blog CI



zed

1st chunk of `docs/src/snippets.md`
7dddf10d4c581d820bdb4ce246c945f7e322cdd1f410e3e0000000010000070f
# Snippets

Use the {#action snippets::ConfigureSnippets} action to create a new snippets file or edit a existing snippets file for a specified [scope](#scopes).

The snippets are located in `~/.config/zed/snippets` directory to which you can navigate to with the {#action snippets::OpenFolder} action.

## Example configuration

```json
{
  // 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](https://github.com/zed-industries/simple-completion-language-server/tree/main).

Title: Snippets Configuration in Zed Editor
Summary
This section explains how to configure and use snippets in Zed editor. Snippets are stored in JSON files within the `~/.config/zed/snippets` directory, and can be managed using the `snippets::ConfigureSnippets` and `snippets::OpenFolder` actions. Each snippet requires a name and body, with optional prefix and description. Placeholders like `$1` and `$0` can be used for tab stops and cursor positioning. The scope of a snippet is determined by the language name in lowercase, with exceptions for JSX (javascript.json) and Global (snippets.json). Limitations include only the first prefix being used and only JSON snippet files being supported. Further configuration details can be found in the `simple-completion-language-server` documentation.